在下面的代碼,是有辦法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