事件冒泡 bubbles cancelBubble stopPropagation() stopImmediatePropagation() 区别

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>事件冒泡</title></head><body><h4>bubbles cancelBubble stopPropagation() stopImmediatePropagation() 区别</h4><input type="text" id="test"><button type="button" id="btn" style="height: 30px;width: 200px;">bubbles</button><button type="button" id="btn2" style="height: 30px;width: 200px;">阻止冒泡按钮</button><button type="button" id="btn3" style="height: 30px;width: 200px;">stopPropagation</button><button type="button" id="btn4" style="height: 30px;width: 200px;">stopImmediatePropagation</button><button type="button" id="btn5" style="height: 30px;width: 200px;">cancelBubble</button><script type="text/javascript">// bubbles cancelBubble stopPropagation() stopImmediatePropagation() 区别// 1.bubbles 返回布尔值 表示当前事件是否会冒泡,只读// 注意 大部分事件都会冒泡 但是focus blur scroll事件不会冒泡var btn = document.getElementById('btn');var btn2 = document.getElementById('btn2');var btn3 = document.getElementById('btn3');var btn4 = document.getElementById('btn4');var btn5 = document.getElementById('btn5');var test = document.getElementById('test');btn.onclick = function(e) {e = e || window.event;console.log(e.bubbles);}test.onclick = function(e) {e = e || window.event;console.log(e.bubbles);}// 2.stopPropagation()  表示取消事件的进一步冒泡,无返回值// 但是无法阻止同一事件的其他监听函数被调用// ie8 浏览器不支持btn2.onclick = function(e) {e = e || window.event;// 阻止冒泡e.stopPropagation();this.innerHTML = '阻止冒泡'}btn3.addEventListener('click', function(e) {e = e || window.event;e.stopPropagation();this.innerHTML = '修改了'});btn3.addEventListener('click', function(e) {e = e || window.event;this.style.backgroundColor = 'lightblue';});// 上层事件 观察是否冒泡使用document.body.onclick = function(e) {e = e || window.event;console.log('body');}// 3.stopImmediatePropagation()  既可以阻止冒泡,也可以阻止同一事件的其他监听函数被调用btn4.addEventListener('click', function(e) {e = e || window.event;e.stopImmediatePropagation();this.innerHTML = '修改了'});btn4.addEventListener('click', function(e) {e = e || window.event;this.style.backgroundColor = 'lightblue';})// 4.cancelBubble 属性用于阻止冒泡,可读写// 默认值为false// 当设置为true,cancelBubble可以取消事件冒泡btn5.addEventListener('click', function(e) {e = e || window.event;e.cancelBubble = true;this.innerHTML = '修改了'});</script></body>
</html>

阻止事件冒泡兼容写法

            // 兼容 stopPropagation() stopImmediatePropagation() ie8不支持// e.cancelBubble = true; 全浏览器都支持 不是标准写法// 兼容写法var handler = function (e) {e = e || window.event;if(e.stopPropagation) {e.stopPropagation();} else {e.cancelBubble = true;}}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/247305.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue2.0关于添加属性后视图不能更新的问题

属性赋值和this.$set 和vue.$set方法我不行 可以用 this.$delete来进行删除后在设置都可以了 转载于:https://www.cnblogs.com/zhouyideboke/p/11276299.html

vite2.1 最新alias别名设置方式

vite.config.js 别名配置 resolve.alias 类型&#xff1a; Record<string, string> | Array<{ find: string | RegExp, replacement: string }> 将会被传递到 rollup/plugin-alias 作为 entries 的选项。也可以是一个对象&#xff0c;或一个 { find, replacement …

Java生鲜电商平台-商城后台架构与原型图实战

Java生鲜电商平台-商城后台架构与原型图实战 说明&#xff1a;生鲜电商平台的运营平台&#xff0c;其中需要很多的功能进行管理。目前把架构与原型图实战分享给大家&#xff0c;希望对大家有用. 仪表盘/首页&#xff0c;简单统计&#xff0c;报表页&#xff0c;运营快捷口。实际…

antdesignvue upload vue3个人笔记待更新

remove点击移除文件时的回调&#xff0c;返回值为 false 时不移除。支持返回一个 Promise 对象&#xff0c;Promise 对象 resolve(false) 或 reject 时不移除。Function(file): boolean | Promise无 beforeUpload上传文件之前的钩子&#xff0c;参数为上传的文件&#xff0c;若…

logging模块和包

日志模块和包 logging logging模块简介 logging模块是记录我们软件的各种状态&#xff0c;还可以记录各种交易信息 其实每个软件都是有错误日志的,开发人员可以通过错误日志中的内容对他的程序进行修改 日志级别 import logginglogging.debug(调试debug) # DEBUG 10…

python软件开发规范

软件开发规范 什么是软件开发规范&#xff1f; 好的设计项目目录结构&#xff0c;就和编码风格一样&#xff0c;是每个程序员都有的风格&#xff0c;但是在流水化标准化作业过程中&#xff0c;个性和风格是 不被鼓励的。如果你去维护一个非常不好读的项目&#xff0c;虽然实现逻…

D3Vueecharts个人乱记

利用d3vue开发的一个网络拓扑图 https://copyfuture.com/blogs-details/20200710101052238h32wazjmcii49dr 一开始用的是echart画的。 根据https://gallery.echartsjs.com/editor.html?cxH1Rkt3hkb&#xff0c;成功画出简单的节点关系。 如图&#xff1a; 总结—— 【优…

vue中使用Vue-pdf在线预览

下载 npm i vue-pdf 引入(在所需要预览的页面) <script>import axios from axiosimport pdf from vue-pdfimport CMapReaderFactory from vue-pdf/src/CMapReaderFactory.js // 加载中文的包export default {components: {pdf},data () {return {numPages:&#xff0c;…

oracle 自定义 聚合函数

Oracle自定义聚合函数实现字符串连接的聚合 create or replace type string_sum_obj as object ( --聚合函数的实质就是一个对象 sum_string varchar2(4000), static function ODCIAggregateInitialize(v_self in out string_sum_obj) return number, --对象初始化 member func…

Vue3里的setup中使用vuex

useStore 这里我们可以直接从vuex 4.X中解构出useStore方法&#xff0c;就可以在setup中使用vuex的相关函数 template 使用$store <template><div><h2>{{ $store.state.count }}</h2><button click"increaseCount">点击</button…

JQ 取CHECKBOX选中项值

备忘录 $("[namecheckbox]:checked").each(function(){ alert((this).val()); }) ;转载于:https://www.cnblogs.com/showblog/archive/2010/09/13/1825099.html

vue3 echarts5 graph关系图谱 点击图例节点消失线不消失重复生成问题

const myChart ref(null);const myCharts ref(null);onMounted(() > {// 这种会导致线仍然存在 重复生成myCharts.value echarts.init(myChart.value);myCharts.value.setOption(option);});return {myChart,myCharts,}; 现象&#xff1a;如下图1 点击图例类目2&#xf…

非常完整的coco screator socketio

https://github.com/SeaPlanet/cocoscreator_chat 前端源码 https://github.com/socketio/socket.io-client https://cdnjs.com/libraries/socket.io 转载于:https://www.cnblogs.com/suneil/p/11288628.html

JavaScript 中 obj.hasOwnProperty(prop) 方法

语法 obj.hasOwnProperty(prop) 参数 prop 要检测的属性的 String 字符串形式表示的名称&#xff0c;或者 Symbol。 返回值 用来判断某个对象是否含有指定的属性的布尔值 Boolean。 描述 所有继承了 Object 的对象都会继承到 hasOwnProperty 方法。这个方法可以用来检测…

python面向对象初识

面向对象编程 1.面向对象初步了解 ​ 面向过程编程与函数编程对比&#xff1a; s1 ajdsgkaffddha count 0 for i in s1:count 1 print(f字符串的长度为{count}) # 面向过程编程每计算一次便使用一次for循环def my_len(s): # 计算数据类型长度的函数&#xff0c;可重复使用…

Vue3 VSCode新建项目报错The template root requires exactly one element.

1.首先我们点击左侧第四个图标插件2.输入框搜索vetur插件3.点击设置图标&#xff0c;再点击扩展设置4.搜素vetur>validation>template&#xff0c;取消vetur>validation>template的勾选 然后就不会报错了

计算机视觉概述

关于计算机视觉的介绍性文章&#xff0c;包括计算机视觉的定义&#xff0c;和人类视觉的区别以及涉及到的学科等等。 1. 什么是计算机视觉 计算机视觉既是工程领域&#xff0c;也是科学领域中的一个富有挑战性重要研究领域。计算机视觉是一门综合性的学科&#xff0c;它已经吸引…

Java生鲜电商平台-电商支付流程架构实战

Java生鲜电商平台-电商支付流程架构实战 说明&#xff1a;我一直秉承的就是接地气的业务架构实战。我的文章都有一个这样的核心。 1. 业务场景 2. 解决问题。 3.代码实现。 4.代码重构。 5.总结与复盘。 6.缺点与防范 一、场景描述 想必大家都曾遇到过这个问题&#xff0c;在电…

vue3.0 AntDesignVue2.0 table的rowkey报错问题解决方法

Warning: [antdv: Each record in table should have a unique key prop,or set rowKey to an unique primary key.] Warning: [antdv: Table] Each record in dataSource of table should have a unique key prop, or set rowKey of Table to an unique primary key 提示因为…

模式识别扫盲

模式识别是对表征事物或现象的各种形式的信息进行处理和分析&#xff0c;以对事物或现象进行描述、辨认、分类和解释的过程&#xff0c;是信息科学和人工智能的重要组成部分。英文“Pattern”源于法文“Patron”&#xff0c;本来是指可作为大家典范的理想的人&#xff0c;或用以…