Как отсоединить событие «dragstart» от экземпляра CKEditor?

Некоторое время назад у меня были проблемы с перетаскиванием и CKEditor. Оказывается, есть ошибка (еще не решенная) с редактором, не позволяющая мне работать с событием dragstart без его повторного присоединения каждый раз, когда я уничтожаю и воссоздаю экземпляр CKEditor. Дополнительные сведения об ошибке см. в разделе этот вопрос

Делая это, событие dragstart в конечном итоге срабатывает все больше и больше раз каждый раз, когда я воссоздаю экземпляр редактора.

Я хотел бы знать, есть ли способ отсоединить событие, когда я воссоздаю экземпляр редактора, чтобы оно срабатывало только один раз (поскольку мне приходится каждый раз подключать его снова), просто в качестве обходного пути, пока ошибка не будет исправлена.

Мне предложили сделать следующее:

Вы можете поместить: CKEDITOR.document.getById('contactList').on('dragstart', ... ); внутри метода инициализации плагина. После такого изменения перетаскивание должно работать, но перетаскивание будет запущено несколько раз. Вы можете отсоединить событие dragstart, прежде чем прикрепить его снова, все должно работать нормально.

Я искал документы и ничего не нашел об этом, поэтому я был бы рад, если бы кто-нибудь мог мне помочь.

Спасибо.


person RodrigoACK    schedule 04.02.2016    source источник


Ответы (1)


Вы всегда можете сохранить ссылку на объект прослушивателя и удалить ее, когда она больше не нужна, с помощью removeListener метод объекта, возвращаемый методом on.

См. следующий пример:

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();
person Marek Lewandowski    schedule 07.02.2016