js的捕捉事件,冒泡事件

冒泡事件可以查询上个随笔,

捕捉事件正好和冒泡时间正反着

所以这代码我把冒泡事件注释,

html和css的内容

<style type="text/css">
    #box1{width:500px;height:500px;background:#900;}
     #box2{width:400px;height:400px;background:#090;}
      #box3{width:300px;height:300px;background:#009;}
       #box4{width:200px;height:200px;background:#990;}
        #box5{width:100px;height:100px;background:#099;}
</style>

<body>
<div id="box1">
    <div id="box2">
       <div id="box3">
                <div id="box4">
                       <div id="box5">

                       </div>
                </div>
       </div>
    </div>
</div>

js部分代码

 1 <script>
 2     window.onload=function()
 3     {
 4       //监听事件
 5         var $=function(_id){return document.getElementById(_id);}
 6         document.addEventListener("click", function(){alert("捕抓中,你点击了document")}, true);
 7         document.body.addEventListener("click", function(){alert("捕抓中,你点击了body")}, true);
 8            $("box1").addEventListener("click", function(){alert("捕抓中,你点击了id为:"+this.id +"的div")}, true);
 9               $("box2").addEventListener("click", function(){alert("捕抓中,你点击了id为:"+this.id +"的div")}, true);
10                  $("box3").addEventListener("click", function(){alert("捕抓中,你点击了id为:"+this.id +"的div")}, true);
11                      $("box4").addEventListener("click", function(){alert("捕抓中,你点击了id为:"+this.id +"的div")}, true);
12                         // $("box5").addEventListener("click", function(){alert("捕抓中,你点击了id为:"+this.id +"的div")}, true);
13
14
15      //冒泡事件
16      // var $=function(_id){return document.getElementById(_id);}
17         // document.addEventListener("click", function(){alert("冒泡中,你点击了document")}, false);
18         // document.body.addEventListener("click", function(){alert("冒泡中,你点击了body")}, false);
19         //    $("box1").addEventListener("click", function(){alert("冒泡中,你点击了id为:"+this.id +"的div")}, false);
20         //       $("box2").addEventListener("click", function(){alert("冒泡中,你点击了id为:"+this.id +"的div")}, false);
21         //          $("box3").addEventListener("click", function(){alert("冒泡中,你点击了id为:"+this.id +"的div")}, false);
22         //              $("box4").addEventListener("click", function(){alert("冒泡中,你点击了id为:"+this.id +"的div")}, false);
23         //                 // $("box5").addEventListener("click", function(){alert("冒泡中,你点击了id为:"+this.id +"的div")}, false);
24
25
26 //删除监听事件,必须完全一样
27 var del =function(){alert("冒泡中,你点击了id为: "+this.id +"的div")}
28  $("box5").addEventListener("click", del, false);
29  // $("box5").removeEventListener("click",del, false);
30
31
32
33  //ie用的是attachEvent()  和detachEvent()  都有两个参数   ie11也不支持了
34  // $("box5").attachEvent("onclick",del);
35  // $("box5").detachEvent("onclick",del);
36
37
38     }
39 </script>

其实捕捉监听事件和冒泡事件只是函数的一个参数不同,一个true,一个false。

其实主要有时候我们实现某些功能时,需要移除捕捉和冒泡事件。

  

时间: 2024-08-11 05:25:52

js的捕捉事件,冒泡事件的相关文章

理解js事件冒泡事件委托事件捕获

js事件冒泡 javascript的事件传播过程中,当事件在一个元素上出发之后,事件会逐级传播给先辈元素,直到document为止,有的浏览器可能到window为止,这就是事件冒泡现象. <div id="col">    <p>        <a id="btn" href="#">button</a>    </p></div> <script> let b

11.30js高级事件冒泡事件捕获

面向对象 单列模式 工厂模式 构造函数 (1) 类 Js天生自带的类 Object 基类 Function Array Number Math Boolean Date Regexp String 1.事件 浏览器客户端上客户触发的行为都称为事件 所有的事件都是天生自带的,不需要我们去绑定,只需要我们去触发. 通过obj.事件名=function(){} 事件名:onmouseover onmouseout onmousedown onmousemove onmouseup Onclick  o

JavaScript和JQuery中的事件\委托链\事件冒泡\事件捕获,兼容所有浏览器

有做过北大青鸟培训讲师经验的我,如今在一家公司做技术部经理的职位,发现有很多程序员的基本功相当糟糕,在组织企业内部培训时讲解了一些案例,总结了一些经典代码,希望对自己和有需要的人提供一些帮助吧: JavaScript版本: DOM0事件不支持委托链 1 <!DOCTYPE html> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="C

事件冒泡,事件捕获

//JS事件流中有一种事件被称为“冒泡事件”,当一个元素被触发一个事件时,该目标元素上的事件会优先被执行,然后向外传播到每个祖先元素,恰如水里的一个泡泡似的,从产生就一直往上冒,到达水平面时,它才消失.在这个过程中,如果你只希望触发目标元素上的事件,而不想它传播到祖先元素上去,那么你需要在“泡泡”离开对象之前刺破它. //  事件冒泡是一个从子节点向祖先节点冒泡的过程: //事件捕获刚好相反,是从祖先节点到子节点的过程. //  方法一: return false;消除事件冒泡 //  方法二:

事件冒泡 事件捕获 事件委托

在javascript里,事件委托是很重要的一个东西,事件委托依靠的就是事件冒泡和捕获的机制,我先来解释一下事件冒泡和事件捕获: 事件冒泡会从当前触发的事件目标一级一级往上传递,依次触发,直到document为止.事件捕获会从document开始触发,一级一级往下传递,依次触发,直到真正事件目标为止. 这么说是不是很抽象,其实就像我敲击了一下键盘,我在敲击键盘的同时,我是不是也敲击了这台电脑,我写个例子大家就明白了: <!DOCTYPE html> <html> <head&

jQuery之防止冒泡事件,冒泡事件就是点击子节点,会向上触发父节点,祖先节点的点击事件。

冒泡事件就是点击子节点,会向上触发父节点,祖先节点的点击事件. 下面是html代码部分: <body> <div id="content"> 外层div元素 <span>内层span元素</span> 外层div元素 </div> <div id="msg"></div> </body> 对应的jQuery代码如下: <script type="text/

js 事件冒泡与事件捕获

一.事件冒泡 事件冒泡是指在事件发生过程中先从目标节点开始执行,并一层一层的相父节点依次查询直到document,并执行相同事件的过程. btn1.addEventListener('click',function(e){ //true 为事件捕获,false 为事件冒泡 //false为默认方式,冒泡方式执行 //点击btn1时,如果是事件冒泡,则先执行btn1上的click事件,然后执行父元素div1上的click事件 //如果是事件捕获,则先执行父元素上的click事件,然后执行btn1上

JS中的事件绑定,事件捕获,事件冒泡以及事件委托,兼容IE

转载请注明出处:http://www.cnblogs.com/zhangmingze/p/4864367.html ● 事件分为三个阶段:   事件捕获 -->  事件目标 -->  事件冒泡 ● 事件捕获:事件发生时(onclick,onmouseover--)首先发生在document上,然后依次传递给body.……最后到达目的节点(即事件目标). ● 事件冒泡:事件到达事件目标之后不会结束,会逐层向上冒泡,直至document对象,跟事件捕获相反 1.onlick -->事件冒泡,

阻止事件冒泡js jquery

jQuery之防止冒泡事件 冒泡事件就是点击子节点,会向上触发父节点,祖先节点的点击事件. 下面是html代码部分: <body> <div id="content"> 外层div元素 <span>内层span元素</span> 外层div元素 </div> <div id="msg"></div> </body> 对应的jQuery代码如下: <script ty