VUE中如何實現阻止事件冒泡
如何阻止事件冒泡
當父子元素中都有點擊事件的時候,為瞭讓觸發子元素中的事件時,不去觸發父元素中的事件,可以在子元素事件中添加stop來阻止事件冒泡。
如圖,在button的點擊事件中加上stop,觸發addStatus的時候,就不會去觸發父元素中的showColorStatus事件。
科普
.stop
是阻止冒泡行為,不讓當前元素的事件繼續往外觸發,如阻止點擊div內部事件,觸發div事件.prevent
是阻止事件本身行為,如阻止超鏈接的點擊跳轉,form表單的點擊提交.self
是隻有是自己觸發的自己才會執行,如果接受到內部的冒泡事件傳遞信號觸發,會忽略掉這個信號.capture
是改變js默認的事件機制,默認是冒泡,capture功能是將冒泡改為傾聽模式.once
是將事件設置為隻執行一次,如 .click.prevent.once 代表隻阻止事件的默認行為一次,當第二次觸發的時候事件本身的行為會執行.passive
滾動事件的默認行為 (即滾動行為) 將會立即觸發,而不會等待 onScroll 完成。這個 .passive 修飾符尤其能夠提升移動端的性能。
阻止click事件冒泡(防止觸發另一個事件)的方法
方法一
使用vue阻止子級元素的click事件冒泡。簡單得:可以直接用stop
<div @click="test1()"> <span @click.stop="test2()">按鈕1</span> <span>按鈕2</span> </div>
這樣點擊div裡面的按鈕1,就不會觸發div綁定時間test1()方法。
方法二
可以自己寫個阻止冒泡事件 然後在發生冒泡的元素中調用這個事件
@click="_stopPropagation($event)" methods:{ _stopPropagation(ev){ var _this = this; ev.stopPropagation(); }, }
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。