我有以下设置:
带有onblur事件的输入:
<input type="text" onblur="doSomethingCool();" />
带有onclick事件的1个Div:
<div id="divOne" onclick="ipiicaei();"></div>
一大堆其他的HTML。
单击divOne元素时,我需要停止doSomethingCool()函数。所以基本上,当点击指定的页面部分时,请停止onblur。
注1:event.stopPropagation似乎无效。
注2:情况已经简化,问题如下:&#34;为什么这样做?&#34;,&#34;使用的是什么?&#34;,&#34;为什么不改变功能,以便onclick处理你需要的东西?&#34;,&#34;为什么不用其他东西改变onblur事件?&#34;没用了。
注3:已经有一个或多或少的&#34;全球&#34;旗帜......但我个人认为这有点蹩脚,我正在寻找一个更好的。
答案 0 :(得分:1)
您可以使用以下方式延迟模糊事件:
<input type="text" onblur="setTimeout(doSomethingCool);" />
<div id="divOne" onclick="ipiicaei();" tabindex="-1">test</div>
请参阅#divOne
的tabindex属性,让它成为焦点。
在CSS中,您可以添加:
#divOne {
outline:none;
}
然后,像这样过滤onblur事件:
function doSomethingCool(){
if(document.activeElement.id === "divOne") return;
/* any other relevant stuff here */
}