1. 程式人生 > >js與jquery阻止冒泡的方法

js與jquery阻止冒泡的方法

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;
		       }
		   }