在下面的代码,是有办法blurredByClickOnLink设置为正确的值(不使用鼠标悬停或其他鼠标事件点击发生之前设置的东西)?如果用户通过单击链接模糊了文本框,则该属性为true;如果用户通过Tab键或单击其他任何位置来模糊文本框,则为false。感谢您看一看!onblur - 如何判断点击的内容;或如何判断一个onclick事件正在等待运行
<html>
<body>
<input id="myInput" type="text" onblur="var blurredByClickOnLink='???'; console.log('input onblur. blurred by click on link = ' + blurredByClickOnLink);" />
<br/><br/>
<a id="myLink" href="javascript:console.log('a href');void(0);" onclick="console.log('a onclick');">Link</a>
</body>
</html>
谢谢!所以这听起来像我想要的(关于模糊事件中即将发生的点击事件的信息)无法完成,因为模糊事件知道的事情迄今为止还没有被点击。我能够使用setTimeout(在任一元素的单击事件中)来完成所需的行为。 我不熟悉的事件队列是如何工作的,但听起来好像是没有办法在模糊事件中的代码,以确定哪些是在事件队列? – Kwateco 2014-12-04 23:00:35
这就是它。想象一下使用高速摄像头拍摄浏览器的交互。当您将鼠标移出输入字段时,会发生模糊事件,并且可能会在发生任何后续事件(如点击)之前处理。 – Kolban 2014-12-05 00:02:36
我认为比我最初提出的问题更好的问题是:如何判断一个onblur事件是否正在等待onmousedown正在运行。与模糊和点击不同,mousedown和blur同时发生,但mousedown事件首先运行。 因此,对于一个更好的问题的具体例子: 在这个小提琴中 - http://jsfiddle.net/85r4vfqg/14/ - 可以将变量listOfBlurEventsWaitingToRun填入更有用的东西,特别是如果有多个元素会发生模糊事件?而不看activeElement?可以直接查看“事件队列”吗? – Kwateco 2014-12-24 14:49:42