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

    问题背景

    <div>里面有一个<a>,当点击<a>时,<div>的点击处理也触发了,这不是我想要的。

    原理

    DOM中,树状结构决定了子元素肯定在父元素里,所以点击子元素,就同时点击了子元素和父元素,以及父元素的父元素;

    事件从触发节点开始,逐层向上级元素传递的过程,称为事件冒泡。

    测试及阻止

     1 <!DOCTYPE html>
     2 <html>
     3     <head>
     4         <meta charset="utf-8">
     5         <title></title>
     6     </head>
     7     <body>
     8         <div onclick="divClick()" style="height: 200px; background-color: orangered;">
     9             <a href="javascript:funHerf()" onclick="spanClick()" style="height: 100px; background-color: greenyellow;">
    10                 hello
    11             </a>
    12         </div>
    13     </body>
    14     <script>
    15         //测试onclick函数带参数的时候,参数到底是什么值
    16         // function setVal() {
    17         //     var a = 2;
    18         //     var b = 3;
    19         // }
    20         // setVal();
    21 
    22         function divClick() {
    23             alert("div");
    24         }
    25 
    26         function spanClick(a, b) {
    27             // alert(a + "," + b);
    28             alert("span");
    29             //阻止事件冒泡
    30             if(event.stopPropagation){
    31                 event.stopPropagation(); 
    32             }else{
    33                 //IE死变态,和别人不一样,要用这个方法
    34                 event.cancelBubble=true;
    35             }
    36             //href链接总是各级onclick事件完成后执行,preventDefault()可阻止默认href链接的执行
    37             // event.preventDefault();
    38         }
    39 
    40         function funHerf() {
    41             alert("href");
    42         }
    43     </script>
    44 </html>
  • 相关阅读:
    洛谷 P1092 虫食算
    2018.3.25校内互测
    洛谷 P2915 [USACO08NOV]奶牛混合起来Mixed Up Cows
    洛谷 P1879 [USACO06NOV]玉米田Corn Fields
    洛谷 P3052 [USACO12MAR]摩天大楼里的奶牛Cows in a Skyscraper
    ZJOI Day 2 游记
    editorial-render A
    BZOJ2904
    BZOJ 1600
    构造脚本语言
  • 原文地址:https://www.cnblogs.com/real-bert/p/11854013.html
Copyright © 2011-2022 走看看