回答
blur
:
用戶代理必須當事件目標失去焦點分派該事件。焦點必須來自調度此事件類型之前的元素。
當事件目標接收焦點一種用戶代理必須分派該事件。在派發此事件類型之前,必須將焦點賦予該元素。
由於沒有兩個元素可以有重點的同時,按理說是blur
必須focus
之前。
如果你仍然對這些頁面感興趣,那麼還有更多關於'focusin'和'focusout'的信息。它出現*好像'focusout'應該發生在blur之前,因爲它說「*用戶代理必須在事件目標失去焦點時調度這個事件,這個事件類型必須在元素失去焦點之前調度。 「和」模糊「表示它在事件目標失去焦點時發生,但您瞭解瀏覽器製造商...... –
運行下面的代碼片段並將輸入集中在左側,然後單擊右側的輸入,您將看到順序爲模糊 - > focusout - > focus(在Chrome中),但是如果您檢查它在Safari中,它會模糊 - >聚焦 - >聚焦。所以現在,你不能假設不同的用戶代理實現相同的事件順序。另外,專注和模糊本質上是相同的。不同的是,模糊事件不會冒泡。
編輯:爲了響應您的編輯,在焦點之前總是發生模糊。
var i1 = document.getElementById("i1");
var i2 = document.getElementById("i2");
var whatHappened = document.getElementById("whatHappened");
i1.addEventListener("focusout", function() {
var p = document.createElement("P");
p.innerText = "focusout";
whatHappened.appendChild(p);
});
i1.addEventListener("blur", function() {
var p = document.createElement("P");
p.innerText = "blur";
whatHappened.appendChild(p);
});
i2.addEventListener("focus", function() {
var p = document.createElement("P");
p.innerText = "focus";
whatHappened.appendChild(p);
});
<input type="text" id="i1" />
<input type="text" id="i2" />
<div id="whatHappened"></div>
好吧,我得到'focusout' - >'blur' - >'focus',所以我認爲基本上證明沒有,順序不一致。 –
謝謝Niet,我在我的回答中添加了事件順序依賴於用戶代理。 –
- 1. Tinymce模糊/焦點事件
- 2. YUI:RTE:焦點和模糊事件
- 3. 是否按順序發佈wxPython事件?
- 4. 焦點和模糊事件觸發錯誤的元素
- 5. 我如何觸發tinymce 4.x焦點和模糊事件
- 6. jQuery Mobile selectmenu焦點和模糊事件不會觸發
- 7. 是否保證Dictionary.Values按照添加的順序返回元素?
- 8. 是否保證在PHP中按照數組順序迭代foreach?
- 9. 如何找到焦點模糊事件
- 10. 頂級窗口焦點/模糊事件
- 11. 焦點和模糊事件的事件重定向
- 12. context.startService()調用是否保證按照發送的順序由服務獲取?
- 13. 在DOM節點上處理焦點和模糊事件
- 14. LocalBroadcastManager是否按事件發送順序傳遞事件?
- 15. 輸入焦點和模糊
- 16. jQuery:焦點和模糊
- 17. Asana故事是否保證按時間順序返回?
- 18. Ajax請求是否保證按發送順序返回?
- 19. Qt:事件是否按順序處理?
- 20. 如何獲得模糊事件後的焦點事件?
- 21. PhoneGap:iOS/Android中的JavaScript焦點和模糊事件
- 22. 針對HTMLDivElement的焦點和模糊事件?
- 23. Zepto的焦點和模糊事件的實現
- 24. 保證onmouseout事件發生
- 25. Greenrobot EventBus粘性事件順序是否有保證?
- 26. 模糊事件:如果在元素內發生點擊,請勿模糊
- 27. 在android中按順序發生事情
- 28. 互斥鎖是否按照與它們相同的順序發生?
- 29. 元素觸發後保持焦點模糊
- 30. TinyMCE的V3還是在焦點/模糊
我不確定'聚焦'應該發生在'模糊'之前......但我可以問爲什麼它很重要嗎?如果你的代碼依賴於這個事件順序,那麼你可能以一種更爲困難的方式做了一些事情。 –
編輯問題以從等式中刪除'focusout'。我更感興趣的是「blur」和「focus」的順序。 – callum