JS CKEditor使用setData后绑定click事件

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的时候一定要注意着两种绑定事件的方法。

posted @ 2017-06-09 12:46  忘光了  阅读(1407)  评论(1编辑  收藏  举报