如何分离' dragstart'来自CKEditor实例的事件?

时间:2016-02-04 12:51:42

标签: javascript jquery ckeditor ckeditor4.x

不久前,我遇到了拖拉机问题。 drop和CKEditor。原来有一个错误(尚未解决),编辑器阻止我使用dragstart事件,而无需在每次销毁和重新创建CKEditor实例时重新附加它。有关该错误的更多详细信息,请参阅this question

通过这样做,dragstart事件每次重新创建编辑器实例时都会触发越来越多次。

我想知道是否有一种方法可以在重新创建编辑器实例时分离事件,因此它只触发一次(因为我必须每次重新连接它),就像解决方法一样直到修复bug

我被建议做以下事情:

  

您可以在插件init方法中放置:CKEDITOR.document.getById('contactList').on('dragstart', ... );。在这样的改变拖放应该工作,但dragstart将被多次触发。您可以在再次附加dragstart事件之前将其分离,以便一切正常。

我搜索了文档但没有发现它,所以如果有人能帮助我,我会很高兴。

谢谢。

1 个答案:

答案 0 :(得分:1)

您始终可以保留侦听器对象引用,并在使用on方法返回的removeListener对象方法不再需要时将其删除。

参见以下示例:

var editor = CKEDITOR.instances.editor1;
var myKeyListener = editor.on('key', function(){ console.log( 'key pressed' ); });
// Once you don't need the listener just call removeListener() method.
myKeyListener.removeListener();