码迷,mamicode.com
首页 > Web开发 > 详细

js 事件流

时间:2019-11-23 21:39:25      阅读:91      评论:0      收藏:0      [点我收藏+]

标签:console   doc   表示   document   str   click   strong   mic   back   

概念

简单来讲事件流就是页面接受事件的顺序,事件发生后会在元素节点之间按照某种顺序传播

document->html->body->div->body->html->document这是DOM2级规定的事件流顺序,如下图:

技术图片

 

 

 

 

 

 

<body>
    <div id="outer">
        <div id="inner">inner</div>
    </div>
    <script>
//        点击inner的执行顺序
        var inner = document.querySelector(#inner);
        var outer = document.querySelector(#outer);
        // on***/attachEvent 只能得到冒泡阶段
         // 第三个参数默认是false 表示处于冒泡阶段 假如是true表示捕获阶段
        inner.addEventListener(click,function() {
            console.log(捕获 inner); //3.
        },true);
        
        outer.addEventListener(click,function() {
            console.log(捕获 outer); //2.
        },true);
        outer.addEventListener(click,function() {
            console.log(冒泡 outer); //4
        },false);
        document.body.addEventListener(click,function
        () {
            console.log(冒泡 body); //5
        });
        document.body.addEventListener(click,function
        () {
            console.log(捕获 body);   //1.
        },true);

        // document->html->body->outer->inner->outer->body...
    </script>
</body>

捕获阶段一般不做什么操作,冒泡阶段可以做一些操作,比如事件委托就是利用冒泡来做的。

有的事件不具有冒泡阶段,比如 焦点事件、onmouseenter/onmouseleave (onmouseour/onmouseout具有冒泡

js 事件流

标签:console   doc   表示   document   str   click   strong   mic   back   

原文地址:https://www.cnblogs.com/lyt0207/p/11919770.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!