澄清一下,我在導航欄中有這個路由器鏈接,導航欄中有一個按鈕,可以更改路線。
這是背景關系的代碼:
<router-link v-if="foo" :to="/">
...
<button @click="redirect"> GO </button>
...
重定向的方法:
redirect() { this.$router.push('/myroute').catch(() => {})
我嘗試在兩個元素上使用 z 索引,但每次我點擊 GO 按鈕時,它首先轉到“/myroute”,然后回傳到“/”
有沒有辦法解決這個問題?
uj5u.com熱心網友回復:
您可以呼叫event.stopPropagation()以防止此事件在冒泡階段傳播。所以事件只會在按鈕元素上停止。
redirect(e) {
e.stopPropagation();
this.$router.push('/myroute').catch(() => {});
}
uj5u.com熱心網友回復:
您可以使用停止修飾符來@click。
<router-link v-if="foo" :to="/">
...
<button @click.stop="redirect"> GO </button>
...
這相當于 vue 中的 stopPropagation。
z-index 更多關于按鈕的顯示。事件會傳播,這樣當您單擊內部 DOM 元素時,您也同時單擊了 (x,y) 處的所有內容,包括包含節點。如果沒有其他東西在偵聽該事件(通常是這種情況),則單擊會執行您想要的操作。
另一種選擇是制作按鈕和路由器鏈接兄弟,并使用<div></div>帶有一些彈性樣式的外部將它們放置在您想要的位置。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/372768.html
上一篇:陣列中的Vue3物件無法訪問
