zoukankan      html  css  js  c++  java
  • 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>

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

  • 相关阅读:
    MySQL常用函数介绍
    SQL语法基础之DROP语句
    MySQL常见报错汇总
    SQL语法基础之SELECT
    SQL语法基础之ALTER语句
    OpenStack技术栈-OpenStack的基础原理概述
    体验Hadoop3.0生态圈-CDH6.1时代的来临
    Windows下强制删除文件或文件夹(解除文件占用/Unlock)
    foreach Transform 同时chils.setParent引起的bug
    CharacterController平滑移动到某点
  • 原文地址:https://www.cnblogs.com/webyyq/p/8977397.html
Copyright © 2011-2022 走看看