Vue сначала регистрирует событие @click
перед v-noclick
, где вы добавляете прослушиватель события второго щелчка для этого элемента.При нажатии на <a>
сначала будет выполняться функция displayModal()
, затем будет выполняться прослушиватель в директиве v-noclick
.Если бы слушатели были зарегистрированы в обратном порядке, то это, вероятно, сработало бы.
Однако, если не считать, что то, что вы пытаетесь сделать, должно выполняться внутри пользовательской директивы.Вместо этого вы можете сделать ту же логику в самом обработчике кликов:
<a @click="onClick">Foo</a>
onClick() {
if (whatever) {
this.displayModal()
}
}