zoukankan      html  css  js  c++  java
  • EonerCMS——做一个仿桌面系统的CMS(六)

    事件冒泡

      事件冒泡是个很常见的问题,不过我之前没听说过,所以这里只是做个笔记,如果了解事件冒泡,并清楚如何处理的,可以直接跳过这篇文章。下面我们看下这面这demo,点击红色区域,会弹出1,点击灰色,会弹出2。

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

      处理办法其实很简单,有两种,一种就是“e.stopPropagation();”,另外一种就是“return false;”。

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

      或者:

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

      两种解决办法的区别就是,return false必须放在方法最后,不然之后的代码也就不执行了,也就是说,当你把return false放在最头部的时候,不仅阻止了事件往上冒泡,而且阻止了事件本身。

      关于在EonerCMS里哪里会用到阻止冒泡呢,看下这张图吧

      由于title区域的拖动事件执行顺序是mousedown->mousemove,所以在title区域里的最大化、最小化等按钮,他们的事件虽然是click,但click默认也执行了mousedown,所以这里需要先统一阻止冒泡。

    	//组织冒泡,之前对窗口绑定过事件
    	obj.find("a").bind("mousedown",function(e){
    		e.stopPropagation();
    	});
    
  • 相关阅读:
    双启利器EasyBCD帮你找回消失了的Windows
    去掉不需要的加载项,让你的Office软件运行如飞
    Windows 7中的无损分区工具Partition Master
    IIS目录浏览模式时,ISO等文件显示不存在的解决方案
    必须常去论坛
    SSOについての英訳練習
    1月21日
    080124 (30,20)
    080122 (30,25)
    九局下半
  • 原文地址:https://www.cnblogs.com/hooray/p/2198760.html
Copyright © 2011-2022 走看看