CKEditor使用setData()时会自动丢失初始时绑定的时间,在百度时发现有很多方法都不对。
近期在做项目的时候,由于客户需要,将原来的文本格式的textarea标签更改成富文本编辑器--CKEditor,插件使用起来很方便,网上教程很多。API看起来比较麻烦。
为文本框添加绑定事件的两种方式:
1、CKeditor预加载时可以绑定一次:
IS代码:
var a = CKEDITOR.replace( id);//id是页面元素的ID值;ckeditor_onFocus是自己定义的方法
a.on("instanceReady", function () {
this.document.on("click", function () {ckeditor_onFocus(id);});
});
第一个方法很简单易懂,开始初始化时就绑定事件。这样做事对的,但是CKEditor在使用赋值方法setData()之后,初始化绑定的click事件 就会自动丢失;
所以在每次使用setData()方法后需要重新绑定事件,两个绑定方法是不一样的。
JS代码:
function CKE_setData(id,va){//id是页面元素的id值;va是需要赋值的内容
CKEDITOR.instances[""+id+""].setData(va,function() {
CKEDITOR.instances[""+id+""].on("focus", function () {ckeditor_onFocus(""+id+"");});
} );
}
重新绑定后,再次点击就可以实现绑定的事件效果了。
在使用CKEditor的时候一定要注意着两种绑定事件的方法。
JS CKEditor使用setData后绑定click事件
原文:http://www.cnblogs.com/wgl1/p/6971503.html