zoukankan      html  css  js  c++  java
  • 关于JS中的冒泡事件

    原文地址:http://www.cnblogs.com/rixinren/archive/2010/04/06/1705812.html

    js冒泡事件
    前几天在老大那里接触到了js的一个新的单词:冒泡事件;

    何为冒泡事件。
    就是当设定了多个div的嵌套时;即建立了父子关系,当父div与子div共同加入了onclick事件时,当触发了子div的onclick事件后,子div进行相应的js操作。但是父div的onclick事件同样会被触发。这就造成了事件的多层并发,导致了页面混乱。这就是冒泡事件。
    消除冒泡事件的方法
    阻止JavaScript事件冒泡传递(cancelBubble 、stopPropagation)
    下面的一段代码即可以很好的解释是么是冒泡效果,什么叫消除冒泡效果

    <html> 
    <head> 
    <title> 阻止JavaScript事件冒泡传递(cancelBubble 、stopPropagation)</title> 
    <meta name="keywords" content="JavaScript,事件冒泡,cancelBubble,stopPropagation" /> 
    <script type="text/javascript"> 
    function doSomething (obj,evt) { 
    alert(obj.id); 
    var e=(evt)?evt:window.event; //判断浏览器的类型,在基于ie内核的浏览器中的使用cancelBubble
    if (window.event) { 
    e.cancelBubble=true; 
    } else { 
    //e.preventDefault(); //在基于firefox内核的浏览器中支持做法stopPropagation
    e.stopPropagation(); 


    </script> 
    </head> 
    <body> 
    <div id="parent1" onclick="alert(this.id)" style="250px;background-color:yellow"> 
    <p>This is parent1 div.</p> 
    <div id="child1" onclick="alert(this.id)" style="200px;background-color:orange"> 
    <p>This is child1.</p> 
    </div> 
    <p>This is parent1 div.</p> 
    </div> 
    <br /> 
    <div id="parent2" onclick="alert(this.id)" style="250px;background-color:cyan;"> 
    <p>This is parent2 div.</p> 
    <div id="child2" onclick="doSomething(this,event);" style="200px;background-color:lightblue;"> 
    <p>This is child2. Will bubble.</p> 
    </div> 
    <p>This is parent2 div.</p> 
    </div> 
    </body> 
    </html>

    把代码直接复制后,打开当点击child1时不仅会弹出 child1 对话框还会弹出 parent1

    这就是冒泡事件

    但是单击chile2只会弹出child2却不会弹出 parent2,这便是应用了阻止冒泡事件的特效的效果.

  • 相关阅读:
    统计元音 题解
    C语言合法标识符 题解
    查找最大元素 题解
    java_day05_数组
    java_day4_while循环
    java_day03_if,Switch,三目和for循环
    java_day02_基本运算符和数据类型
    java_day01_注释,变量
    前端_day04_行,块,RGB,行高,overflow
    前端_day03_盒子模型,border,padding,margin
  • 原文地址:https://www.cnblogs.com/luofuxian/p/2377450.html
Copyright © 2011-2022 走看看