Vue:如何在按住键盘修饰符时更改按钮的文本?

Posted

技术标签:

【中文标题】Vue:如何在按住键盘修饰符时更改按钮的文本?【英文标题】:Vue: How to change a button's text while a keyboard modifier is held? 【发布时间】:2020-10-10 11:05:13 【问题描述】:

使用 Vue,我试图让按钮在按住 Shift 键时改变其行为。 像这样更改click 事件的行为非常容易:

@click.exact="goForward"
@click.shift="goBackward"

但是,我正在努力更改按钮的文本以反映这种行为。默认文本是Forward,当按住 Shift 键时,我正在尝试将其更改为 Backward

我尝试使用@mouseover.shift,但是还不够好,因为它没有捕捉到mouse enters the button, then user holds shift的情况

【问题讨论】:

【参考方案1】:

您可以使用vue-keypress 包:

<template>
  <div>
    ...
    <button> buttonText </button>
    ...
    <Keypress key-event="keydown" :key-code="16" @success="buttonText = 'Backward'" />
    <Keypress key-event="keyup" :key-code="16" @success="buttonText = 'Forward'" />
  </div>
</template>

<script>
export default

  data: () => (
    buttonText: 'Forward',
  ),

</script>

【讨论】:

看起来不错,我试试看。我真的希望有一种方法可以在没有外部包的情况下做到这一点 如果您不想为这项工作带来外部包 - 您可以简单地将 keyupkeydown 事件处理程序附加到 document 可以更新根 Vue 实例中的变量然后您可以通过$root.ShiftActive 访问

以上是关于Vue:如何在按住键盘修饰符时更改按钮的文本?的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI fileExporter 在 DocumentGroup 的工具栏修饰符中用作按钮修饰符时不存在

更改“返回”键盘按钮的文本

contenteditable:使用行/列修饰符时检测元素变化

vue自定义长按指令

在手机上按住按钮时如何防止附近的文本选择?

在 Android Studio 中按住时如何更改按钮的背景颜色?