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();
	});
相关文章
相关标签/搜索