• js的事件冒泡


    先来段代码

     1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     2 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
     3 <head>
     4     <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
     5     <title>JS常用事件区分</title>
     6 </head>
     7 <script src="jquery-3.3.1.js"></script>
     8 <body>
     9     
    10     <div id="div">
    11         <button id="btn01">只能点击我一次</button>
    12         <button id="btn02">我绑定俩事件(a,b)</button>
    13         <button id="btn03">解除2所有事件</button>
    14         <button id="btn04">解除2的事件b</button>
    15         <button id="btn05" class="myclass">创建一个按钮样式,样式为myclass</button>
    16         <button id="btn06">解绑myclass的事件</button>
    17     </div>
    18 
    19     <!-- 脚本 -->
    20     <script type="text/javascript">
    21         
    22         $(function() {
    23             // 一次点击
    24             $("#btn01").one('click', function(event) {
    25                 alert("我只会出来一次哦");
    26             });
    27             
    28             // 单击事件
    29             $("#btn02").click(function(event) {
    30                 /* Act on the event */
    31                 alert("我是默认事件");
    32             });
    33             //使用别名创建一个点击事件,被移除不影响原本的click
    34             $("#btn02").on("click.b", function(event) {
    35                 /* Act on the event */
    36                 alert("我是新添加的事件");
    37             });
    38 
    39             //删除btn02的click事件
    40             $("#btn03").click(function(event) {
    41                 //$("body").off("click", "button");错误写法
    42                 $("#btn02").off("click");
    43             });
    44 
    45             $("#btn04").click(function(event) {
    46                 //删除btn02的click.b事件,保留原本的click事件
    47                 $("#btn02").off("click.b");
    48             });
    49                 
    50 
    51             // btn05
    52             $("body").on('click', ".myclass", function(event) {
    53                 /* Act on the event */
    54                 $("body").append("<button id='btn05' class='myclass'>样式为myclass</button>");
    55             });
    56 
    57 
    58            /* 
    59             当将btn05下面的方法换成这个后,使用$("body").off("click", "**");将无效
    60             $("#div").on('click', ".myclass", function(event) {
    61                 $("#div").append("<button id='btn05' class='myclass'>样式为myclass</button>");
    62             });
    63             */
    64             // btn06,按钮6点击时,解绑掉body下的所有.myclass预绑定的事件
    65             $("#btn06").click(function(event) {
    66                 //清除body下所有有.myclass样式的click事件
    67                 // $("body").off("click", ".myclass");
    68                 
    69                 //清除绑定在body身上的所有冒泡事件
    70                 $("body").off("click", "**");
    71 
    72             });
    73         })
    74 
    75     </script>
    76 
    77 </body>
    78 </html>

    在某个元素身上绑定对子元素的时间,则只能让该元素解绑,其他人无效

  • 相关阅读:
    数组、链表、Hash的优缺点
    数据库-索引的坏处,事务的级别,分布式事务的原理。
    4G内存的电脑,如何读取8G的日志文件进行分析,汇总数据成报表的面试题
    数据库常用的锁有哪些
    2020年最新 C# .net 面试题,月薪20K+中高级/架构师必看(十)
    ThreadX应用开发笔记之一:移植ThreadX到STM32平台
    net core 方法 返回值 重改?
    使用RestTemplate发送HTTP请求举例
    dedecms织梦手机站上一篇下一篇链接错误的解决方法
    多目标跟踪之数据关联(匈牙利匹配算法和KM算法)
  • 原文地址:https://www.cnblogs.com/webyyq/p/8977397.html
Copyright © 2020-2023  润新知