zoukankan      html  css  js  c++  java
  • JavaScript的事件冒泡机制

    首先事件是什么?

    事件是用户作出某个动作后 浏览器而给出的反应

    那什么是冒泡机制呢?

    什么是冒泡? 一个泡泡 他是不是会从低到高往上升,那么事件冒泡机制 就是 事件往上升:

    在JavaScript中 一棵DOM树  他的事件被激活 就会往上传递信息  层层往上传递,直至传递到dom的根节点。

    例如:以下代码你就会看懂了 一直往上传递信息 上面的onclck也会被激活 但你记住啊 只有onclck啊! 都是对应的

    <!doctype html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport"
              content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>javascript study</title>
    </head>
    <body>
    
    <div onclick="alert('a')">
        <div onclick="alert('b')">
            点我?先b再a
            <div onclick="alert('c')">
                點我?c->b->a
            </div>
        </div>
    </div>
    
    <script type="text/javascript">
    
    </script>
    </body>
    </html>

      一般地,事件在传递过程中会有一些信息,这些是事件的组成部分:事件发生的时间+事件发生的地点+ 事件的类型+事件的当前处理者+其他信息。

    那么我们怎么阻止它呢?

    阻止事件冒泡

     在相应的处理函数内,加入  event.stopPropagation()   ,终止事件的广播分发,这样事件停留在本节点,不会再往外传播了

    例如:

    <!doctype html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport"
              content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>javascript study</title>
    </head>
    <body>
    
    <div onclick="alert('a')">
        <div onclick="alert('b')">
            <div onclick="fun()">           <!--在JS代码中已经进行阻止事件冒泡了-->
                點我?b->a
            </div>
    
        </div>
    </div>
    
    <script type="text/javascript">
        function fun(){
            alert("c");
            event.stopPropagation();
        }
    </script>
    </body>
    </html>

    本文来自博客园,作者:咸瑜,转载请注明原文链接:https://www.cnblogs.com/bi-hu/p/14779421.html

  • 相关阅读:
    Java发生的重大事件
    Java的特点
    JVM的整体结构
    JVM生态圈
    简历不造假,根本就找不到工作?如果你这样想就OUT了
    C语言必背18个经典程序,你记住了吗
    黑客入侵的常用手段,你真的要做好防护了
    从零开始自学Linux,一篇文章带你快速找准学习方向
    还在担心学Linux懵圈吗?掌握这份Linux思维导图,你就能成为高手
    为何计算机专业大一期间先选择学习C语言,而不是其他语言呢?
  • 原文地址:https://www.cnblogs.com/bi-hu/p/14779421.html
Copyright © 2011-2022 走看看