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>
  • 相关阅读:
    STM32时钟树
    js jQuery函数 $.ajax()
    jQuery 语法
    jQuery介绍
    python笔记2 生成器 文件读写
    python笔记1,语法,函数,类和实例,异常
    Scrapy爬虫入门系列4抓取豆瓣Top250电影数据
    Scrapy爬虫入门系列3 将抓取到的数据存入数据库与验证数据有效性
    opus 规范 与参数解析
    开源播放器ijkplayer源码结构
  • 原文地址:https://www.cnblogs.com/real-bert/p/11854013.html
Copyright © 2011-2022 走看看