Clickoutside事件不适用于iframe

时间:2016-07-28 16:04:08

标签: javascript jquery dom web-frontend

它是一个富文本编辑器,用户输入的内容有一个div节目,就像这样:

<div class=‘content’>
    <iframe data-role=text-editable.></iframe>
</div>

当我点击用于调用彩色面板的图标时,面板将显示。我希望当我在面板外单击时,它将被隐藏。所以我的代码是:

var  color_panel = $('.color-panel');
     color_panel.on("clickoutside",        function (e) {                   
    var t = $(e.target);            
    if ($.contains(color_panel[0], t[0]))                  
        return;   
    color_panel.hide();
})

当我在面板外面点击时,它会很好地消失,除非我点击iframe。当我点击ifame时,没有任何反应,面板仍然显示,

帮助......我想知道原因。请问...... ifame不是面板外的dom元素吗?

1 个答案:

答案 0 :(得分:0)

您可以通过聆听网页正文元素的点击来听取外部点击(因此,点击任何元素),然后您可以通过发出另一个事件“{1}}来排除此事件我点击了,忽略任何其他点击“。效果将正是您想要的,您可以听取外部点击:

.color_panel