[JavaScript]阻止冒泡事件
阻止冒泡事件的方法有兩種,第一種是IE的方法,第二種是DOM方法,至于為什么要分為兩種方法去討論之,這里就不做討論了,總之是瀏覽器一些蹩腳的問題,好了廢話不說了,直接貼代碼了:
//阻止冒泡事件 function stopBubble(e) { if (e && e.stopPropagation) {//非IE e.stopPropagation(); } else {//IE window.event.cancelBubble = true; } }
舉個例子:就是谷歌首頁的更多選項吧,不知道的可以去看看http://www.google.com/ 。
這里要應用兩個點擊事件,一個是div.onclick,另一個就是document.onclick,那么問題就出現了,在調用div.onclick的時候,由于冒泡事件的存在,會自動的調用document.onclick,由于冒泡的順序是從里向外的(div->body->document->html)所以div.onclick事件就會被覆蓋掉,也就不會執行了,解決的方案其實也是很簡單的哦,就是在執行div.onclick的時候阻止冒泡事件就好了,那怎么阻止呢,就調用上面的函數就ok了!哈哈!
ps:在介紹一下阻止瀏覽器默認行為的方法,大同小異,這里就不再贅述了。
function stopDefault(e) { //阻止默認瀏覽器動作(W3C) if (e && e.preventDefault) e.preventDefault(); //IE中阻止函數器默認動作的方式 else window.event.returnValue = false; return false; }
全站熱搜