如何在ckeditor窗口或其任何小部件之外检测单击?

如何在ckeditor窗口或其任何小部件之外检测单击?,ckeditor,Ckeditor,如果在CKEditor窗口外单击,则要关闭该编辑器 停止在包含被ckeditor替换的textarea的div上的传播,如下所示 $('resumo_div')。单击(函数(事件){ event.stopPropagation(); }); 然后检测点击,这似乎大部分是有效的 例外情况是单击ckeditor小部件,如链接小部件,这些小部件被检测为在外部。有没有标准的方法来执行此操作?您的问题是事件处理程序将从小部件开始,因为它们是被单击的最上面的元素。当事件到达您的包含div时,小部件将被执行。

如果在CKEditor窗口外单击,则要关闭该编辑器

停止在包含被ckeditor替换的textarea的div上的传播,如下所示

$('resumo_div')。单击(函数(事件){ event.stopPropagation(); });

然后检测点击,这似乎大部分是有效的


例外情况是单击ckeditor小部件,如链接小部件,这些小部件被检测为在外部。有没有标准的方法来执行此操作?

您的问题是事件处理程序将从小部件开始,因为它们是被单击的最上面的元素。当事件到达您的包含div时,小部件将被执行。而不是将ckeditor封装在div中(在我的示例中,当单击时将关闭ckeditor的覆盖)。将ckeditor移到div(覆盖)之外


.覆盖{
位置:固定;
宽度:100%;
身高:100%;
}
#编辑容器{
位置:固定;
最高:50%;
高度:200px;
余量:-100px自动0自动;/*容器居中*/
}
在发现我能够改进发布在那里的解决方案后,通过拦截小部件中的点击来满足我的需求

$('body').click(function(event){

    if($(event.target).parents('#articleEditor').length <= 0 &&  $(event.target).parents('.cke_dialog').length <= 0)
         $('#articleEditor').hide();
})
$('body')。单击(函数(事件){

if($(event.target).parents(“#articleEditor”).length我想你是在建议我检测表示外部的其他div上的单击,而不是试图确定单击是否来自ckeditor或widget。不幸的是,在我的特定情况下,这是不可行的。此外,我对正在实施的widget没有问题:这不是问题所在。
$('body').click(function(event){

    if($(event.target).parents('#articleEditor').length <= 0 &&  $(event.target).parents('.cke_dialog').length <= 0)
         $('#articleEditor').hide();
})