Vue.directive('login-to-click', {
bind (el) {
const clickHandler = (event) => {
event.preventDefault()
event.stopImmediatePropagation()
alert('click')
}
el.addEventListener('click', clickHandler, true)
}
})
使用如何防止/停止指令(VUE 2.X)違約事件(點擊)的傳播
<button @click="handleClick" v-login-to-click>CLICK</button>
總是被觸發。我怎樣才能防止來自指令?嘗試了/沒有addEventListener「捕獲」標誌沒有任何運氣。
現在我結束了以下解決方案:
Vue.prototype.$checkAuth = function (handler, ...args) {
const isLoggedIn = store.getters['session/isLoggedIn']
if (isLoggedIn) {
return handler.apply(this, args)
} else {
router.push('/login')
}
}
然後在組件
<button @click="$checkAuth(handleClick)">CLICK</button>
event.target.preventDefault未定義。 – user606521
那麼當你登錄時你的'event'實際上會顯示什麼? –