Ckeditor事件绑定

最近有个需求是要在点击CKeditor的时候触发某个判断的事件。试了一些方法都不可行,自己写的onclick时间都会被编辑器屏蔽。可以对对象加载完成绑定事件代码如下。

CKEDITOR.instances.text.on("instanceReady", function () {  
        //and click event  
        this.document.on("click", check_ckedit);
});

其中check_ckedit 是点击的时候触发的函数名。但调用了 setData方法后,刚才绑定的事件就被清除了。要重新绑定。代码如下。

if('写点什么吧' === CKEDITOR.instances.comment_text.document.getBody().getText().trim()) {
                CKEDITOR.instances.comment_text.setData('', function() {
                    CKEDITOR.instances.comment_text.focus();
                    CKEDITOR.instances.comment_text.document.on("click", check_ckedit);
                });                
            }

setData方法 是个异步的,所以直接写后面添加绑定的话不是每次都成功,甚至是每次都不成功。所以可以利用它的第二个参数。把要处理的事情写到函数中。传递给它。这样就保证了绑定事件是在setData之后的了。

posted @ 2016-08-03 18:40  達達尼亞  阅读(3808)  评论(0编辑  收藏  举报