JS中綁定事件順序(事件冒泡與事件捕獲區(qū)別)
在JS中,綁定的事件默認的執(zhí)行時間是在冒泡階段執(zhí)行,而非在捕獲階段(重要),這也是為什么當(dāng)父類和子類都綁定了某個事件,會先調(diào)用子類綁定的事件,后調(diào)用父類的事件。直接看下面實例
<!Doctype html> <html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> *{margin:0;padding: 0;} </style> </head> <body> <div id="id1" style="height:400px; border:1px solid #000;"> <div id="id2" style="height:200px; border:1px solid #000;"> <div id="id3" style="height:50px; border:1px solid #000;"></div> </div> </div> </body> <script type="text/javascript"> var obj1=document.getElementById('id1'); obj1.addEventListener('click',function(){ alert('id1'); },false); var obj2=document.getElementById('id2'); obj2.addEventListener('click',function(){ alert('id2'); },true); var obj3=document.getElementById('id3'); obj3.addEventListener('click',function(){ alert('id3'); },true); /*如果第三個參數(shù)為true,則事件在捕獲階段執(zhí)行,如果第三個參數(shù)為false,則事件在冒泡階段執(zhí)行*/ </script> </html>
當(dāng)點擊id3元素時候,執(zhí)行結(jié)果是:id2,id3,id1
解析:因為obj2與obj3綁定的方法在捕獲階段執(zhí)行,obj1的事件在冒泡階段執(zhí)行。
總結(jié)
在JS中,綁定的事件默認的執(zhí)行時間是在冒泡階段執(zhí)行,而非在捕獲階段,必須要理解
不過我們可以通過綁定事件時,指定事件執(zhí)行時間是在冒泡階段還是捕獲階段。
obj.addEventListener(event,function(){},bool)
bool:false,代表冒泡階段執(zhí)行
bool:true,代表捕獲階段執(zhí)行
JS在默認情況下獲取事件后,就開始從根元素開始捕獲所有該事件的監(jiān)聽對象,然后在冒泡階段逐一執(zhí)行。捕獲階段是在冒泡階段前面
阻止冒泡
w3c的方法是e.stopPropagation(),IE則是使用e.cancelBubble = true;
阻止默認行為
w3c的方法是e.preventDefault(),IE則是使用e.returnValue = false;
關(guān)于JS 事件冒泡和onclick,click,on()事件觸發(fā)順序
onclick,click,on()的優(yōu)先關(guān)系:onclick>click>on();
onclick和click綁定的事件,彼此之間遵守事件冒泡規(guī)則,從內(nèi)到外觸發(fā);
on()綁定的事件,總是晚于onclick和click綁定的事件觸發(fā);
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!
相關(guān)文章
JavaScript面向?qū)ο蟮某绦蛟O(shè)計(犯迷糊的小羊)
這篇文章主要介紹了JavaScript面向?qū)ο蟮某绦蛟O(shè)計(犯迷糊的小羊),需要的朋友可以參考下2018-05-05Bootstrap Table快速完美搭建后臺管理系統(tǒng)
這篇文章主要為大家詳細介紹了Bootstrap Table快速完美搭建后臺管理系統(tǒng)的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-09-09use jscript Create a SQL Server database
use jscript Create a SQL Server database...2007-06-06如何利用Web Speech API之speechSynthesis實現(xiàn)文字轉(zhuǎn)語音功能
Web Speech API使你能夠?qū)⒄Z音數(shù)據(jù)合并到Web應(yīng)用程序中,SpeechSynthesisUtterance是HTML5中新增的API,用于將指定文字合成為對應(yīng)的語音,這篇文章主要介紹了利用Web Speech API之speechSynthesis實現(xiàn)文字轉(zhuǎn)語音功能,需要的朋友可以參考下2024-06-06