美文网首页
js中的事件冒泡和事件捕获

js中的事件冒泡和事件捕获

作者: JYOKETSU3 | 来源:发表于2017-09-29 15:35 被阅读0次
    • 他们是描述事件触发时序问题的术语。
    • 事件捕获指的是从document触发事件的那个节点,即自上而下的去触发事件。
    • 事件冒泡是从触发事件的那个节点document,自下而上的去触发事件。
    • 绑定事件方法的第三个参数,就是控制事件触发顺序是否为事件捕获。true事件捕获;false事件冒泡。默认false即事件冒泡。
    • Event对象的stopPropagation()方法会阻止冒泡,不再派发事件。
    事件捕获
    事件冒泡
    示例:
    <div id="parent">
      <div id="child" class="child"></div>
    </div>
    

    现在我们给它们绑定上事件

    document.getElementById("parent").addEventListener("click",
    function(e) {
        alert("parent事件被触发," + this.id);
    });
    document.getElementById("child").addEventListener("click",
    function(e) {
        alert("child事件被触发," + this.id)
    })
    

    结果:
    child事件被触发,child
    parent事件被触发,parent
    结论:先child,然后parent。事件的触发顺序自内向外,这就是事件冒泡。

    现在改变第三个参数的值为true

    document.getElementById("parent").addEventListener("click",
    function(e) {
        alert("parent事件被触发," + e.target.id);
    },
    true);
    document.getElementById("child").addEventListener("click",
    function(e) {
        alert("child事件被触发," + e.target.id)
    },
    true)
    

    结果:
    parent事件被触发,parent
    child事件被触发,child
    结论:先parent,然后child。事件触发顺序变更为自外向内,这就是事件捕获。


    笔记摘自[帅舅舅-博客园]

    相关文章

      网友评论

          本文标题:js中的事件冒泡和事件捕获

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