zoukankan      html  css  js  c++  java
  • 事件冒泡和事件捕获

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>事件冒泡和事件捕获</title>
        <!-- 
            事件冒泡和事件捕获是在直系亲属树内才会发生,如:儿子-爸爸-爷爷
            ele.addEventListener(a,b,false/true);为元素ele添加事件a,触发事件时执行句柄b
            事件冒泡:
            第三个参数默认为false,称为事件冒泡
            事件执行顺序:由下至上,往上冒泡;如:触发儿子的事件后,先执行儿子的句柄,再执行爸爸的句柄,最后执行爷爷的句柄
            事件捕获:
            第三个参数为true时;表示捕获了该事件,称为事件捕获
            以下称被捕获事件为x,x的儿子称为x-1,x的爸爸称为x+1
            事件执行顺序:触发x-1事件时,优先执行x的句柄,再执行x-1的的句柄,最后直系x+1的句柄
    
            tip:通过子系事件触发事件冒泡,被捕获的事件执行顺序要优先于其子系事件,不影响其父系事件
         -->
         <style>
             #grandpa{
                 width: 400px;
                 height: 300px;
                 border: 2px solid black;
             }
             #parent{
                 width: 300px;
                 height: 200px;
                 background: yellow;
             }
             #child{
                 width: 200px;
                 height: 100px;
                 background: red;
                 border: 5px solid black;
             }
         </style>
    </head>
    <body>
        <div id="grandpa">
            爷爷
            <div id="parent">
                爸爸
                <div id="child">儿子</div>
            </div>
        </div>
        <script>
            var grandpa=document.getElementById("grandpa");
            var parent=document.getElementById("parent");
            var child=document.getElementById("child");
            grandpa.addEventListener("click",function(){
                alert("我是爷爷");
            },false);//最后执行爷爷句柄
            parent.addEventListener("click",function(){
                alert("我是爸爸");
            },true);//当触发儿子的事件时,爸爸句柄先执行
            child.addEventListener("click",function(){
                alert("我是儿子");//触发儿子事件后,执行爸爸句柄后再执行儿子句柄
            },false);
        </script>
    </body>
    </html>
  • 相关阅读:
    51Nod 1080
    51Nod 1015 水仙花数
    51Nod 1009 数字1的个数 | 数位DP
    Java中Native关键字的作用
    【Java关键字-Interface】为什么Interface中的变量只能是 public static final
    JAVA8 十大新特性详解
    深入理解final关键字
    Linux 在线模拟器
    jdk1.7和jdk1.8区别
    Java高新技术第一篇:类加载器详解
  • 原文地址:https://www.cnblogs.com/vinson-blog/p/12112801.html
Copyright © 2011-2022 走看看