事件冒泡 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.pswp.cn/news/247305.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/247305.shtml
英文地址,請注明出處:http://en.pswp.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;或用以…