js與jquery阻止冒泡的方法
阿新 • • 發佈:2018-11-09
1、event 物件供我們在需要時呼叫,event物件只在事件發生過程中才有效,event代表事件的狀態 ,比如事件在其中發生的元素、鍵盤按鍵的狀態、滑鼠的位置、滑鼠按鈕的狀態 ;(w3c說明)
2、ff與ie/chrome裡面的event物件不同,ie/chrome中是window.event ,ff中是event本身;ie/chrome事件物件 window.event.srcElement , ff中為event.target ;
3、如果事件控制代碼想阻止事件傳播到包容物件,必須把cancelBubble屬性設為 true。
以下程式碼為發生點選事件時某元素消失,點選事件物件時不消失;
第一種方法:事件監聽
<script type="text/javascript"> $(document).bind('click', function(event) { var _event = event || window.event; var _element = _event.target || _event.srcElement; while (_element) { if (_element.id && _element.id == 'xxx') { return; } _element = _element.parentNode; } $('xxx').css('display', 'none'); }); </script>
第二種方法:阻止冒泡
function stopPropagation(e) {
var _e = e || window.event;
if (_e.stopPropagation) {
_e.stopPropagation();
}
else if (window.event) {
window.event.cancelBubble = true;
}
}