不久前,我遇到了拖拉机问题。 drop和CKEditor。原来有一个错误(尚未解决),编辑器阻止我使用dragstart
事件,而无需在每次销毁和重新创建CKEditor实例时重新附加它。有关该错误的更多详细信息,请参阅this question
通过这样做,dragstart
事件每次重新创建编辑器实例时都会触发越来越多次。
我想知道是否有一种方法可以在重新创建编辑器实例时分离事件,因此它只触发一次(因为我必须每次重新连接它),就像解决方法一样直到修复bug
我被建议做以下事情:
您可以在插件init方法中放置:
CKEDITOR.document.getById('contactList').on('dragstart', ... );
。在这样的改变拖放应该工作,但dragstart将被多次触发。您可以在再次附加dragstart
事件之前将其分离,以便一切正常。
我搜索了文档但没有发现它,所以如果有人能帮助我,我会很高兴。
谢谢。
答案 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();