自己的代码测试

<div id="content">    <div id = "div1">        <button id = "button1">测试按钮</button>    </div></div>
<script type="text/javascript">    var content=document.getElementById('content');    var div = document.getElementById("div1");    div.addEventListener("click" ,function(){console.log("第一次执行");});//第一次执行    div.addEventListener("click" , function(){console.log("第二次执行");});//第二次执行    content.addEventListener("click" , function(){console.log("冒泡content执行");});//冒泡content执行</script>

测试一:stopPropagation
div.addEventListener("click" ,function(e){console.log("第一次执行");e.stopPropagation()});div.addEventListener("click" , function(){console.log("第二次执行");});content.addEventListener("click" , function(){console.log("冒泡content执行");});

结果阻止div1往content冒泡,不影响第二个事件的执行,虽然第二个事件可以冒泡,但是总的阻止了当前元素的冒泡;结论阻止当前对象的传播(冒泡),不影响同一对象上的其他事件处理程序
测试二:stopImmediatePropagation
div.addEventListener("click" ,function(e){console.log("第一次执行");e.stopImmediatePropagation()});div.addEventListener("click" , function(){console.log("第二次执行");});div.addEventListener("click" , function(){console.log("第三次执行");});content.addEventListener("click" , function(){console.log("冒泡content执行");});

结果阻止div1往content冒泡,影响其后续事件的执行;
div.addEventListener("click" ,function(){console.log("第一次执行");});div.addEventListener("click" , function(e){console.log("第二次执行");e.stopImmediatePropagation()});div.addEventListener("click" , function(){console.log("第三次执行");});content.addEventListener("click" , function(){console.log("冒泡content执行");});

结果阻止div1往content冒泡,影响其后续事件的执行,之前事件不影响执行;
结论阻止当前对象的传播(冒泡),只会影响该对象上设置冒泡事件的后续事件处理程序

转载于:https://www.cnblogs.com/sxly/p/9460318.html

stopImmediatePropagation函数和stopPropagation函数的区别相关推荐

  1. jQuery Event.stopPropagation() 函数详解

    stopPropagation()函数用于阻止当前事件在DOM树上冒泡. 根据DOM事件流机制,在元素上触发的大多数事件都会冒泡传递到该元素的所有祖辈元素上,如果这些祖辈元素上也绑定了相应的事件处理函 ...

  2. render函数和redirect函数的区别+反向解析

    render函数和redirect函数的区别+反向解析 1.视图函数:一定是要包含两个对象的(render源码里面有HttpResponse对象)   request对象:----->所有的请求 ...

  3. 友元函数、类的非静态成员函数、静态成员函数的区别

    类中申明的函数相对于类来说有三层意思: 1.有this指针 2.函数在类的作用区域中 3.可以访问类中私有部分 4.可以被继承 非静态成员函数具有1234 静态成员函数具有234 友元函数具有3 静态 ...

  4. Python初探——sklearn库中数据预处理函数fit_transform()和transform()的区别

    敲<Python机器学习及实践>上的code的时候,对于数据预处理中涉及到的fit_transform()函数和transform()函数之间的区别很模糊,查阅了很多资料,这里整理一下: ...

  5. 第七周项目一-成员函数、友元函数和一般函数有区别(1)

     /**Copyright(c)2016,烟台大学计算机与控制工程学院*All rights reserved*文件名称:123.cpp*作 者:王蕊*完成日期:2016年4月12日*版 本 号: ...

  6. js函数声明和函数表达式的区别

    Javascript Function无处不在,而且功能强大!通过Javascript函数可以让JS具有面向对象的一些特征,实现封装.继承等,也可以让代码得到复用.但事物都有两面性,Javascrip ...

  7. python中remove函数是什么意思,python中pop函数和remove函数有什么区别

    python中pop函数和remove函数有什么区别 发布时间:2020-12-10 09:36:18 来源:亿速云 阅读:80 作者:小新 小编给大家分享一下python中pop函数和remove函 ...

  8. C++ 在继承中虚函数、纯虚函数、普通函数,三者的区别

    C++ 在继承中虚函数.纯虚函数.普通函数,三者的区别 1.虚函数(impure virtual) C++的虚函数主要作用是"运行时多态",父类中提供虚函数的实现,为子类提供默认的 ...

  9. Javascript 函数声明和函数表达式的区别

    2019独角兽企业重金招聘Python工程师标准>>> Javascript Function无处不在,而且功能强大!通过Javascript函数可以让JS具有面向对象的一些特征,实 ...

最新文章

  1. 加载BeanFactory
  2. 美团点评基于 Flink 的实时数仓建设实践
  3. InputFlinger崩溃问题分析报告
  4. linux 编程之库的使用(学习笔记)
  5. IDEA快捷键拆解系列(五):Navigate篇
  6. 一朝清明不若鸿蒙什么意思,清明节得名并非源于“气清景明”
  7. bzoj 2178 圆的面积并 —— 辛普森积分
  8. el-table列宽设置百分比无效;el-table使用min-width设置百分比;el-table百分比设置无效;
  9. 在arm上运行x86动态库_用 qemu-user 在arm linux机器上运行amd64/x86程序
  10. XMLHelper 辅助类
  11. python try 打印错误_python try语句如何打印错误行(含execfile)-- 转
  12. (8)matplotlib 将点连成线
  13. 中美线径对照表_导线截面与线径对照表
  14. 使用consul注册中心要求服务以自定义instance-id形式注册
  15. s饥荒服务器物品id,流年饥荒控制台指令大全+物品大全+服务器管理命令大全.docx...
  16. 永远的美女......
  17. 奇怪,发不出去,只能截图发了
  18. [深度学习] (sklearn)多层感知机对葡萄酒的分类
  19. 「 机器人学 」“Human-aware机器人导航技术”浅谈
  20. 正点原子探索者stm32f407 rt-thread 文件系统使用

热门文章

  1. MongoDB操作命令
  2. mac OS Sierra支持破解程序
  3. MQCache 秒开缓存快速入门指南 - 旁路(使用镜像交换机)
  4. 数学之路(3)-机器学习(3)-机器学习算法-神经网络[17]
  5. 创建与SharePoint 2010风格一致的下拉菜单 (续) 整合Feature Custom Action框架
  6. 建立asp.net应用程序提示:无法与服务器建立连接
  7. FPGA中LUT、 LATCH 、FF
  8. FPGA锁存器、触发器、寄存器和缓冲器的区别
  9. Xilinx FPGA中SRL(移位寄存器)资源
  10. Verilog中可综合与不可综合的语句