• 事件冒泡或事件捕获


    转自:http://www.runoob.com/js/js-htmldom-eventlistener.html

    事件传递定义了元素事件触发的顺序。 如果你将 <p> 元素插入到 <div> 元素中,用户点击 <p> 元素, 哪个元素的 "click" 事件先被触发呢?

    在 冒泡 中,内部元素的事件会先被触发,然后再触发外部元素,即: <p> 元素的点击事件先触发,然后会触发 <div> 元素的点击事件。

    在 捕获 中,外部元素的事件会先被触发,然后才会触发内部元素的事件,即: <div> 元素的点击事件先触发 ,然后再触发 <p> 元素的点击事件。

    addEventListener() 方法可以指定 "useCapture" 参数来设置传递类型:

    addEventListener(event, function, useCapture);

    默认值为 false, 即冒泡传递,当值为 true 时, 事件使用捕获传递。

    例子:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>雨文木可</title>
    <style>
    div {
        background-color: coral;
        border: 1px solid;
        padding: 50px;
    }
    </style>
    </head>
    <body>
    
    <p>实例演示了在添加不同事件监听时,冒泡与捕获的不同。</p>
    <div id="myDiv">
        <p id="myP">点击段落,我是冒泡。</p>
    </div><br>
    <div id="myDiv2">
        <p id="myP2">点击段落,我是捕获。 </p>
    </div>
    <script>
    document.getElementById("myP").addEventListener("click", function() {
        alert("你点击了 P 元素!");
    }, false);
    document.getElementById("myDiv").addEventListener("click", function() {
        alert(" 你点击了 DIV 元素 !");
    }, false);
    document.getElementById("myP2").addEventListener("click", function() {
        alert("你点击了 P2 元素!");
    }, true);
    document.getElementById("myDiv2").addEventListener("click", function() {
        alert("你点击了 DIV2 元素 !");
    }, true);
    </script>
    
    </body>
    </html>
  • 相关阅读:
    电子书、API、帮助文档 链接收藏
    .net上传图片我自己的可下载资源
    VS2012+EF5学习MVC4(二)
    VS2012+EF5学习MVC4(三)
    MVC 3.0 的新特性
    最受欢迎的ASP.NET的CMS下载
    简易甘特图 .net javascript
    VS2010+EF Code First 4.1学习MVC3(三)
    winform WebBrowser 文件下载拦截 获取文件本地保存路径
    一次偶遇 IOException
  • 原文地址:https://www.cnblogs.com/zhengwk/p/6043301.html
Copyright © 2020-2023  润新知