如何从 CKEditor 实例中分离 'dragstart' 事件?

How to detach 'dragstart' event from CKEditor instance?

不久前,我遇到了拖放和 CKEditor 的问题。事实证明,编辑器存在一个错误(尚未解决),使我无法在每次销毁并重新创建 CKEditor 实例时不重新附加它的情况下处理 dragstart 事件。有关错误的更多详细信息,请参阅

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

我想知道是否有办法在我重新创建编辑器实例时分离事件,所以它只触发一次(因为我每次都必须重新附加它),就像解决错误之前的解决方法已修复。

有人建议我执行以下操作:

You can put: CKEDITOR.document.getById('contactList').on('dragstart', ... ); inside the plugin init method. After such change drag and drop should work, but dragstart will be fired multiple times. You can detach the dragstart event, before you attach it again end everything should work fine.

我已经搜索了文档,但没有找到相关信息,所以如果有人能帮助我,我会很高兴。

谢谢。

您始终可以保留侦听器对象引用,并在不再需要时使用 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();