我有以下代码:
<div id="id1">
<div id="id2">
<p> some text </p>
</div>
<div id="id3">
<!--some other div elements-->
</div>
</div>
当点击页面上的某个按钮时, #id2
为contenteditable
。
我的脚本包含以下代码:
jQuery("#id1").focousout(focousoutFunction);
问题在于,如果#id2
失去焦点,则会触发focousoutFunction
。
是否有一种方法focusout
只会在实际元素失去焦点而不是内部元素时捕获事件?
答案 0 :(得分:0)
您可以强制javascript停止传播。
jQuery("#id1 div").focusout(function(event) {
event.stopPropagation();
});
答案 1 :(得分:0)
当焦点事件或任何元素时,会将焦点事件发送给元素 在里面,失去焦点。这与模糊事件不同 它支持检测后代元素的焦点丢失 (换句话说,它支持事件冒泡)。
每当#id1
内的元素失去焦点时,焦点输出就会触发,即使#id1
没有失去焦点本身(尽管我不确定你可以将焦点事件分配给div元素) ;