假設有一個div包含一個鏈接(一個href),並且有三個事件監聽器 - on-click- 1)用於整個頁面,2)在div 3)一個標籤。如果用戶點擊標籤,聽衆如何觸發?他們的登記順序是什麼?JavaScript中的事件監聽器的順序如何確定?
1
A
回答
1
本質上,這取決於。有兩個階段的事件,捕捉(首先發生),文件下來,冒泡去元素了。
JS可以同時執行這兩個操作,這就是爲什麼當創建一個自定義的事件監聽時,您有第三個布爾變量,例如,
parent.addEventListener('click',doSomething2,true) child.addEventListener('click',doSomething,false)
如果其最後一個參數是真實的事件處理程序設置爲捕獲階段,如果是假的事件處理程序被設置在冒泡階段。
回到示例代碼參考和引用this page:
如果用戶單擊子元素上會發生以下情況:
單擊事件在捕獲階段開始。該事件查看是否有任何子元素的祖先元素具有捕獲階段的onclick事件處理程序。
該事件在父項上找到一個。 doSomething2()被執行。
事件向下傳遞到目標本身,找不到捕獲階段的事件處理程序。該事件進入冒泡階段並執行doSomething(),該冒泡階段註冊給孩子。
事件再次向上移動並檢查目標的任何祖先元素是否具有冒泡階段的事件處理程序。事實並非如此,所以沒有任何反應。
我上面鏈接的頁面有辦法的詳細信息,但希望這回答的基本問題。
相關問題
- 1. 如何確定web.xml中監聽器的順序
- 2. JavaScript監聽器的執行順序
- 3. Javascript事件監聽器?
- 4. javascript DOMContentLoaded事件監聽器
- 5. Javascript事件監聽器
- 6. javascript事件監聽器
- 7. Javascript事件監聽器
- 8. jQuery中的onfinish事件監聽器/ javascript
- 9. javascript中的事件監聽器
- 10. JavaScript定製事件監聽器
- 11. 如何訪問Javascript中的事件監聽器中的變量
- 12. 如何在Javascript中監聽Tapped事件
- 13. 的JavaScript事件監聽PARAM
- 14. 刪除的JavaScript事件監聽器:
- 15. javascript對象的jquery事件監聽器
- 16. 如何刪除javascript中的事件監聽器?
- 17. 瀏覽器FullScreen事件監聽器 - Javascript?
- 18. 事件監聽器?
- 19. Symfony2的事件監聽器
- 20. symfony的事件監聽器
- 21. window.fetch的事件監聽器
- 22. Symfony的事件監聽器
- 23. Javascript:如何在Window.Blur()事件上創建事件監聽器?
- 24. Android的自定義事件監聽器
- 25. Symfony2重定向的事件監聽器?
- 26. Laravel監聽器監聽多個事件
- 27. 多個事件的事件監聽器
- 28. 使用javascript監聽事件
- 29. javascript事件監聽器函數
- 30. Javascript註冊事件監聽器