zoukankan      html  css  js  c++  java
  • addEventListener 的事件冒泡

    语法

    target.addEventListener(type, listener, useCapture);

    • target 文档节点、document、window 或 XMLHttpRequest。
    • type 字符串,事件名称,不含“on”,比如“click”、“mouseover”、“keydown”等。
    • listener 实现了 EventListener 接口或者是 JavaScript 中的函数。
    • useCapture 是否使用捕捉,一般用 false。当为false时为冒泡获取(由里向外),true为capture方式(由外向里)。

    第三参数是包裹层触发问题,事件执行前先判断执行顺序,程序先由外向里扫描注册到各层的事件,如果事件的useCapture参数是true,就立即执行,执行完后继续往里层扫描。false就跳过直接往里层扫描。
    扫描完后到达点击触发的那个元素,然后开始由里向外执行未执行的事件

    <div id="id1" style="200px; height:200px; position:absolute; top:100px; left:100px; background-color:blue; z-index:4">
          <div id="id2" style="200px; height:200px; position:absolute; top:20px; left:70px; background-color:green; z-index:1"></div>
    </div>

    eg1:

    document.getElementById('id1').addEventListener('click', function(event) { console.log('id1');}, false);

    document.getElementById('id2').addEventListener('click', function(event) { console.log('id2');}, false);

    点击id2的div结果是: id2, id1

    eg2:

    document.getElementById('id1').addEventListener('click', function(event) { console.log('id1');}, false);

    document.getElementById('id2').addEventListener('click', function(event) { console.log('id2');}, true);

    结果是: id2, id1

    eg3:

    document.getElementById('id1').addEventListener('click', function(event) { console.log('id1');}, true);

    document.getElementById('id2').addEventListener('click', function(event) { console.log('id2');}, false);

    结果是:id1,id2

    eg4:

    document.getElementById('id1').addEventListener('click', function(event) { console.log('id1');}, true);

    document.getElementById('id2').addEventListener('click', function(event) { console.log('id2');}, true);

    结果是:id1,id2

  • 相关阅读:
    SqlHelper处理类
    你必须知道的ADO.NET(五) 细说数据库连接池
    你必须知道的ADO.NET(三) 连接字符串,你小觑了吗?
    从零开始学习ASP.NET MVC 入门
    ASP.NET MVC3 系列教程 目录
    .NET获取英文月份缩写名(可获取其他国家)
    你必须知道的ADO.NET(二)了解.NET数据提供程序
    良好的C#编程习惯
    你必须知道的ADO.NET(一) 初识ADO.NET
    mvc中使用一个action对多个不同名字段做remote验证
  • 原文地址:https://www.cnblogs.com/lbnnbs/p/6685765.html
Copyright © 2011-2022 走看看