Javascript 如何使用Vue指令防止链接或按钮中的单击事件

Javascript 如何使用Vue指令防止链接或按钮中的单击事件,javascript,html,vue.js,vuejs2,vue-component,Javascript,Html,Vue.js,Vuejs2,Vue Component,您好,我正在使用vue指令,如果元素是或标记,我将尝试阻止单击事件。所以我的问题是,这是否可以使用vue指令实现 Html <a @click.stop.prevent="displayModal()" v-noclick="test"> I'm a link </a> Vue先注册@click事件,然后再注册v-noclick,在该元素上添加第二个单击事件侦听器。单击时,将首先执行displaymodel()函数,然后执行v-noclick指

您好,我正在使用vue指令,如果元素是
标记,我将尝试阻止单击事件。所以我的问题是,这是否可以使用vue指令实现

Html

<a 
    @click.stop.prevent="displayModal()"
    v-noclick="test">
    I'm a link
</a>

Vue先注册
@click
事件,然后再注册
v-noclick
,在该元素上添加第二个单击事件侦听器。单击
时,将首先执行
displaymodel()
函数,然后执行
v-noclick
指令中的侦听器。如果侦听器按相反的顺序注册,那么它可能会工作

尽管如此,看起来您试图做的事情不应该在自定义指令中完成。相反,您可以在单击处理程序本身中执行相同的逻辑:

Foo
onClick(){
如果(无论什么){
this.displaymodel()
}
}

Vue在
v-noclick
之前先注册
@click
事件,在该元素上添加第二个click事件侦听器。单击
时,将首先执行
displaymodel()
函数,然后执行
v-noclick
指令中的侦听器。如果侦听器按相反的顺序注册,那么它可能会工作

尽管如此,看起来您试图做的事情不应该在自定义指令中完成。相反,您可以在单击处理程序本身中执行相同的逻辑:

Foo
onClick(){
如果(无论什么){
this.displaymodel()
}
}

我找不到一种vue方法来实现这一点。但是对于js,您可以像这样使用条件序列

<a @click="cond && onClick"></a>


在这种情况下,如果cond等于true,那么onClick将被调用

我找不到一种vue方法来执行此操作。但是对于js,您可以像这样使用条件序列

<a @click="cond && onClick"></a>

在这种情况下,如果cond等于true,那么将调用onClick