美文网首页vue合集
事件冒泡和事件捕获到底有何区别?

事件冒泡和事件捕获到底有何区别?

作者: YYanm | 来源:发表于2019-02-16 22:53 被阅读0次

\color{red}{1. 事件冒泡原理}

冒泡两字会让我联想想起泡泡,泡泡是往上飞的对吧?
或者像水中鱼儿吐泡泡一样,那个泡泡从产生的起点往上浮。

事件冒泡原理也是相同的,从下至上。


Honeycam 2019-02-16 22-09-37.gif
假设我要点击的是div,点击后会一层一层的往上。

\color{red}{来个小案例}

<div class="classv">
        我是祖宗
        <div class="actva">我是老爸
            <div class="foo">我是孩子</div>
        </div>

    </div>
    <script type="text/javascript">
        var a = document.querySelector('.classv').addEventListener('click', function() {
            console.log('我是祖宗')
        }, false)
        var b = document.querySelector('.actva').addEventListener('click', function() {
            console.log('我是老爸')
        }, false)
        var c = document.querySelector('.foo').addEventListener('click', function() {
            console.log('我是孩子')
        }, false)
    </script>
注意: addEventListener中有三个属性,第三个属性是布尔值。

\color{red}{默认属性是 false为事件冒泡,true 为事件捕获}

Honeycam 2019-02-16 22-38-36.gif
图中点击我是孩子,孩子后面会出现老爸和祖宗。点击老爸,后面会出现我是祖宗。





\color{red}{2. 事件捕获}
事件捕获与事件冒泡完全相反。是从上至下到指定元素。

Honeycam 2019-02-16 22-48-38.gif
来个小案例
<div class="classv">
        我是祖宗
        <div class="actva">我是老大
            <div class="foo">我是老幺</div>
        </div>

    </div>
    <script type="text/javascript">
        var a = document.querySelector('.classv').addEventListener('click', function() {
            console.log('我是祖宗')
        }, true)
        var b = document.querySelector('.actva').addEventListener('click', function() {
            console.log('我是老大')
        }, true)
        var c = document.querySelector('.foo').addEventListener('click', function() {
            console.log('我是老幺')
        }, true)
    </script>
这个案例与前面的是相同,只是把addEventListener的第三属性改成true。
Honeycam 2019-02-16 22-36-02.gif
点击我是孩子,首先出现祖宗、老爸最后出现目标元素。点击我是老爸首先出现祖宗。
注意:addEventListener()必须用removeEventListener()解除



\color{red}{ 如果感觉半知半解的建议可以去动手操作,这样心里记得牢}



-------以上如有错误的地方希望大神们可以指出,感谢!

相关文章

  • JS事件流机制

    事件流指的是 1.节点的捕获2.处理事件3.事件的冒泡 目前分为事件冒泡流,事件捕获流; 区别:1.事件冒泡流在事...

  • 事件冒泡和事件捕获到底有何区别?

    冒泡两字会让我联想想起泡泡,泡泡是往上飞的对吧?或者像水中鱼儿吐泡泡一样,那个泡泡从产生的起点往上浮。 事件冒泡原...

  • IE和DOM事件流的区别

    1.事件流的区别 IE采用冒泡型事件 Netscape使用捕获型事件 DOM使用先捕获后冒泡型事件 示例: 复制代...

  • 事件流的3个阶段:捕获、冒泡、目标

    事件模型:IE事件模型和DOM标准事件模型区别:IE事件模型没有捕获阶段,只有冒泡。 事件流的三个阶段:先捕获阶段...

  • 事件冒泡和事件捕获

    事件冒泡和事件捕获

  • day29-web前端之jQuery及Ajax

    1事件冒泡和捕获 1.1.事件冒泡:在子标签中产生的事件会传递给父标签 1.2事件捕获 捕获事件-阻止事件从子标签...

  • DOM-BOM-EVENT(7)

    7.事件深入 #7.1.事件捕获 事件流分为事件冒泡和事件捕获两种,事件冒泡指事件从里往外传播,而事件捕获刚好相反...

  • JavaScript 事件冒泡、事件捕获和事件委托

    JavaScript 事件冒泡、事件捕获和事件委托 以下在chrome、firefox执行通过。 事件流、事件冒泡...

  • 7.事件?IE和火狐的事件机制有什么区别?如何阻止冒泡? 事件流描述的是从页面中接受事件的顺序,分为冒泡流和捕获流...

  • 事件冒泡和事件捕获的区别:

    事件流描述的是从页面接收事件的顺序。 IE的事件是冒泡事件流, 而firefox的事件流是捕获事件流。 1.事件冒...

网友评论

    本文标题:事件冒泡和事件捕获到底有何区别?

    本文链接:https://www.haomeiwen.com/subject/uwaieqtx.html