【发布时间】:2021-01-18 08:41:16
【问题描述】:
我正在编写一个 VueJS 应用程序,当用户将鼠标悬停在页面上的特定项目上时,该应用程序将显示一个自定义上下文菜单。菜单是动态的,这意味着它会随着用户悬停在不同的项目上而改变。如果用户按住控制键,菜单将是静态的,以便他们可以与菜单中的项目进行交互。
我的问题是 @keydown.ctrl="..." 事件似乎按预期响应 @keyup.ctrl="..." 事件没有。我环顾四周并尝试了不同的修饰符,例如 .exact 和 .caputure,但它们似乎无法解决问题。
不过,有效的方法是将@keyup.ctrl 更改为@keyup.control。 .control 适用于 @keyup 事件,但不适用于 @keydown 事件。
@keydown 和 @keyup 之间有什么区别需要使用不同的键修饰符?
下面是根元素的示例。
<div
tabindex="0"
@keydown.esc.exact="() => (displayContext = false)"
@keydown.ctrl.exact="() => (keepContext = true)"
@keyup.control="() => (keepContext = false)"
>
...
</div>
【问题讨论】:
标签: javascript html vue.js vuejs2