单击指定的div时停止onblur事件

时间:2014-03-28 10:16:29

标签: javascript jquery html

我有以下设置:

带有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;旗帜......但我个人认为这有点蹩脚,我正在寻找一个更好的。

1 个答案:

答案 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 */
}

See DEMO