当“模糊”事件发生时,我如何找出哪个元素焦点转移到*?

当“模糊”事件发生时,我如何找出哪个元素焦点转移到*?

假设我附加了一个blur函数到HTML输入框,如下所示:

<input id="myInput" onblur="function() { ... }"></input>

是否有方法获取导致blur事件在函数中触发(单击的元素)?多么,怎样?

例如,假设我有这样一个跨度:

<span id="mySpan">Hello World</span>

如果在输入元素具有焦点之后单击span,则输入元素将失去焦点。函数如何知道它是mySpan被点击了?

PS:如果SPAN的onClick事件发生在输入元素的onblur事件之前,我的问题就会得到解决,因为我可以设置一些状态值,指示已经单击的特定元素。

PPS:这个问题的背景是我想从外部(从一个可点击的元素)触发一个Ajax自动完成器控件来显示它的建议,而不会因为blur事件发生在输入元素上。所以我想登记一下blur如果已经单击了一个特定的元素,则会调用该函数,如果是,则忽略模糊事件。


Smart猫小萌
浏览 324回答 3
3回答

斯蒂芬大帝

我最终在onblur事件上超时解决了这个问题(感谢一个不是StackOverflow的朋友的建议):<input&nbsp;id="myInput"&nbsp;onblur="setTimeout(function()&nbsp;{alert(clickSrc);},200);"></input><span&nbsp;onclick="clickSrc='mySpan';"&nbsp;id="mySpan">Hello&nbsp;World</span>工作于FF和IE。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript