項目用vue搭建,通過vue-router路由,在一個導航條內
<router-link>
...
<span @click.stop.prevent="navTo('...')">點我路由另一個地址</span>
...
</router-link>
實現目標:點<router-link>內的其他元素都能按照router配置路由,點擊<span>元素觸發click事件而不按照router路由。
實際現象:
我自己的理解:<router-link>會轉化成 a 標籤,那在內部的click事件要阻止向上冒泡應該用.stop修飾,但實際效果是用了stop頁面跳轉兩次,最終跳轉到<router-link>配置的地址。如果用.prevent則只觸發內部的click事件,而不會跳轉到<router-link>頁面,反向推導解釋:<router-link>內部所有子元素都屬於轉化後的a標籤的一部分,默認行爲跳轉到router配置的地址,新增click事件要阻止默認行爲再執行。