EonerCMS——作一個仿桌面系統的CMS(六)

事件冒泡javascript

  事件冒泡是個很常見的問題,不過我以前沒據說過,因此這裏只是作個筆記,若是瞭解事件冒泡,並清楚如何處理的,能夠直接跳過這篇文章。下面咱們看下這面這demo,點擊紅色區域,會彈出1,點擊灰色,會彈出2。java

alert(2);
alert(1);
$("#div1").click(function(){
		alert(1);
	});
	$("#div2").click(function(){
		alert(2);
	});

  處理辦法其實很簡單,有兩種,一種就是「e.stopPropagation();」,另一種就是「return false;」。spa

alert(2);
alert(1);
$("#div1").click(function(){
		alert(1);
	});
	$("#div2").click(function(e){
		e.stopPropagation();
		alert(2);
	});

  或者:blog

$("#div1").click(function(){
		alert(1);
	});
	$("#div2").click(function(e){
		alert(2);
		return false;
	});

  兩種解決辦法的區別就是,return false必須放在方法最後,否則以後的代碼也就不執行了,也就是說,當你把return false放在最頭部的時候,不只阻止了事件往上冒泡,並且阻止了事件自己。事件

  關於在EonerCMS裏哪裏會用到阻止冒泡呢,看下這張圖吧ip

  因爲title區域的拖動事件執行順序是mousedown->mousemove,因此在title區域裏的最大化、最小化等按鈕,他們的事件雖然是click,但click默認也執行了mousedown,因此這裏須要先統一阻止冒泡。it

//組織冒泡,以前對窗口綁定過事件
	obj.find("a").bind("mousedown",function(e){
		e.stopPropagation();
	});
相關文章
相關標籤/搜索