javascript - 在 vuejs 中为按钮添加键盘快捷键

标签 javascript vue.js shortcut keyevent keyup

我有一个按钮,用鼠标单击它时可以执行某些操作。我希望在按下键盘的向上箭头键时也能触发相同的方法。

<button @click="doSomething()"> PRESS ME </button>

doSomething(){
  console.log('clicked')
}

所以在这个例子中,我想在按下键盘的向上箭头时console.log('clicked')。我怎样才能做到这一点?

最佳答案

您可以使用 onkeystroke from vueuse

<template>
  <div>
    <button @click="doSomething">btn</button>
  </div>
</template>

<script setup>
import { onKeyStroke } from '@vueuse/core';

const doSomething = () => {
  console.log('do something');
}

onKeyStroke(['ArrowUp'], (e) => {
  doSomething();
});
</script>

another demo here

stackblitz.com不支持<script setup>所以在这个demo中,写成setup()


更新

没有库的纯js:

<template>
    <div>
        <button
            @click="doSomething">
            btn
        </button>
    </div>
</template>

<script setup>
import { onMounted, onBeforeUnmount } from 'vue';

const doSomething = () => {
    console.log('doSomething');
};

const userClickArrowUp = ({ code }) => {
    if (code === 'ArrowUp') {
        doSomething();
    }
};

onMounted(() => {
    document.addEventListener('keyup', userClickArrowUp, true);
})

onBeforeUnmount(() => {
    document.removeEventListener('keyup', userClickArrowUp, true);
})

</script>

关于javascript - 在 vuejs 中为按钮添加键盘快捷键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74215915/

相关文章:

javascript - “对象作为 React 子对象无效”

arrays - 使用数组排序重新排列 vue 中的元素在移动设备上不起作用?

javascript - 使用动态组件和自定义事件时的 VueJS 警告

c++ - 相同的键盘键作为两个相反操作的快捷方式

visual-studio - Visual Studio 2005 快捷方式

ios - XCode 5 在后面插入新行的快捷方式

javascript - 如何使轨道上的项目可排序

javascript - 使用 RequireJS 模块时出现 "document.write"问题

javascript - 我的轮播 "next"按钮不起作用,并且我的轮播没有自动转换

javascript - VueJS 警告避免直接改变 prop