2016-02-04 4 views
1

Некоторое время назад у меня были проблемы с drag n 'drop и CKEditor. Оказывается, есть ошибка (еще не решена) с редактором, препятствующим мне работать с событием dragstart без повторного подключения к нему каждый раз, когда я уничтожаю и воссоздаю экземпляр CKEditor. Для получения дополнительной информации об ошибке см. this questionКак отключить событие dragstart из экземпляра CKEditor?

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

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

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

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

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

спасибо.

ответ

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();