欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

vue click 穿透

錢瀠龍2年前9瀏覽0評論

當我們在 Vue 中使用 click 事件綁定的時候,經常會遇到一個問題:點擊一個元素卻觸發了它下面的元素的 click 事件,這種情況我們稱之為“click 穿透”。

造成這種問題的原因是,當我們在一個元素上觸發 click 事件時,它可能會觸發不止一個事件。比如,我們在一個按鈕上綁定了 click 事件,同時它的父元素也綁定了 click 事件。當我們點擊按鈕時,它首先會觸發按鈕的 click 事件,然后會向上冒泡,最終觸發父元素的 click 事件。

<div @click="onClick">
<button @click="onBtnClick">Click me</button>
</div>
methods: {
onClick() {
console.log('Parent clicked')
},
onBtnClick() {
console.log('Button clicked')
}
}

在上面的例子中,當我們點擊按鈕時,會分別觸發 'Button clicked' 和 'Parent clicked' 兩個事件。

那么如何解決 click 穿透的問題呢?有一種比較常見的方法是使用.stop修飾符,它可以阻止事件向上冒泡。

<div @click="onClick">
<button @click.stop="onBtnClick">Click me</button>
</div>
methods: {
onClick() {
console.log('Parent clicked')
},
onBtnClick() {
console.log('Button clicked')
}
}

在上面的例子中,我們在按鈕的 click 事件上加上了.stop修飾符。這樣,當我們點擊按鈕時,它僅會觸發 'Button clicked' 事件,而不再觸發 'Parent clicked' 事件。