我想绑定两个鼠标点击事件到一个div字段。其中一个是Shift+单击,另一个是常规单击,例如。
<div @click.shift="aaa()" @click="bbb()">...</div>
问题是,当我在div上按下shift+click时,不仅会执行bbb(),还会执行bbb()。我试着用了一些修饰语,例如。@click.shift.stop或类似的方法,但是bbb()在我点击div的所有时间都被执行。我怎么能解决这个问题,而不分离2种点击事件在一个单一的功能,例如。ccc()调用bbb()或bbb()?
3条答案
按热度按时间xxslljrj1#
你要找的是“精确”修饰语。
https://vuejs.org/guide/essentials/event-handling.html#exact-modifier
.exact
修饰符允许控制触发事件所需的系统修饰符的精确组合。所以这个click事件只有在使用NO修饰符时才会触发,当@click.shift被触发时,它不会被执行。请注意,这也将阻止alt+click,cnc +click等。
jjhzyzn02#
我会这样做,添加一个单击处理程序,它将相应地调度事件。
nbnkbykc3#
希望这有帮助!