在插入CKEDITOR时向元素添加事件监听器?

时间:2014-12-11 05:36:34

标签: events ckeditor

我是CKEDITOR的新手。你们中的一些人回答这些问题可能听起来毫无价值。但是,在过去的几个小时里,我一直在为我的问题寻找解决方案。

目标:

我想为特定类型的元素添加一个事件监听器(例如:span

我尝试了什么:

我使用contentDom引发的CKEDITOR事件,将事件侦听器添加到span元素。

问题:

但是,向span添加事件侦听器将适用于编辑器中当前可用的span。但是,不适用于将来由用户创建的元素(span)。我现在该怎么办?

1 个答案:

答案 0 :(得分:4)

利用事件冒泡的好处[12]。将侦听器附加到编辑器的最顶层元素(可编辑)并过滤掉事件:

CKEDITOR.replace( 'editor1', {
    on: {
        contentDom: function() {
            this.editable().on( 'click', function( evt ) {
                var target = evt.data.getTarget();

                if ( target.is( 'span' ) ) {
                    console.log( 'clicked span!' );
                }
            } );
        }
    }
} );