我正在使用CKEditor 4.4.3并尝试收听编辑的点击事件:
editor.on('click', function (e) {
console.log('click event from attaching to the editor');
});
出于某种原因,click事件永远不会触发。但是,如果我收听doubleclick
事件,则会在双击编辑器时触发。
我之前在editor.editable
上听过点击事件,但它似乎不适用于未内联的编辑器。为什么click
事件不起作用?
进一步调查:
每次点击都会在editor.document
点击附加事件处理程序,包括编辑器外的点击。
将事件处理程序附加到editor.container
会触发包含工具栏的容器上的点击。
答案 0 :(得分:2)
将侦听器附加到CKEditor中的可编辑元素的正确方法:
editor.on( 'contentDom', function() {
var editable = editor.editable();
editable.attachListener( editable, 'click', function() {
// ...
} );
} );
详细了解必须使用contentDom
事件的原因,而不是instanceReady
中的editable.attachListener
documentation。
答案 1 :(得分:1)
使用将事件处理程序附加到编辑器的editable
。这需要在编辑器准备好之后完成:
editor.on('instanceReady', function (e) {
editor.editable().on('click', function (event) {
console.log('clicked');
});
});