0

我有以下代码:

    <div id="id1">
        <div id="id2">
            <p> some text </p>
        </div>
        <div id="id3">
             <!--some other div elements-->
        </div>
    </div>

#id2contenteditable当点击页面上的某个按钮时。

我的脚本有以下代码:

jQuery("#id1").focousout(focousoutFunction);

问题是,如果#id2失去焦点,就会focousoutFunction被解雇。有没有办法focusout只在实际元素失去焦点而不是在元素内部时才捕获事件?

4

2 回答 2

0

当某个元素或其中的任何元素失去焦点时,会将 focusout 事件发送到该元素。这与 blur 事件不同,它支持检测对后代元素失去焦点(换句话说,它支持事件冒泡)。

jQuery 文档

每次内部元素#id1失去焦点时,即使#id1没有失去焦点,focusout 也会触发(尽管我不确定您是否可以将焦点事件分配给 div 元素);

于 2013-03-13T15:28:28.190 回答
0

您可以强制 javascript 停止传播。

jQuery("#id1 div").focusout(function(event) {
   event.stopPropagation();
});
于 2013-03-13T15:26:56.833 回答