确定CKEDITOR实例是否在特定DOM容器内

时间:2011-11-09 21:12:36

标签: jquery ckeditor

我使用以下循环将动作绑定到每个CKEDITOR实例上的焦点事件:

for (var i in CKEDITOR.instances) {
    CKEDITOR.instances[i].on('focus', function() {
        my_custom_function(this.name);
    });
}

我想更改它,以便它只在特定DOM元素内部发生的CKEDITOR实例上运行。例如,使用jquery表示法,DOM元素可能是:

$("#container")

思考?谢谢!

2 个答案:

答案 0 :(得分:1)

每个实例都有一个属性,用于保存创建CKEditor的主节点,因此您可以使用类似

的内容
var testContainer = $("#container");

for (var i in CKEDITOR.instances) {
    var instance = CKEDITOR.instances[i];
    if ( jQuery.contains( testContainer, instance.container.$ ) )
    {
    instance.on('focus', function() {
        my_custom_function(this.name);
    });
    }
}

答案 1 :(得分:0)

我已经重写了AlfonsoML的代码以使其能够用于我的一个项目。

请注意,mariadb-的第一个参数必须是DOM元素(请参见https://api.jquery.com/jQuery.contains/)。

这是我的代码:

jQuery.contains()