CKEditor的点击事件未触发

时间:2014-07-28 06:45:31

标签: events ckeditor

我正在使用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会触发包含工具栏的容器上的点击。

小提琴:http://jsfiddle.net/295PE/

2 个答案:

答案 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');
    });
});

小提琴:http://jsfiddle.net/8fZpz/