【发布时间】:2019-07-23 20:51:10
【问题描述】:
我想在 Vue.js 项目中单击按钮后触发键盘事件(keydown 向上/向下箭头)。
我尝试将dispatchEvent(new KeyboardEvent("keydown", { keyCode: 38/40 })) 用作向上和向下箭头键。
<template>
...
<div class="position-relative input-field__wrapper">
<input
class="input-field__input"
ref="numberInput"
type="number"
:name="name"
:id="randomId || id"
:value="value"
:min="min"
:max="max"
:step="step"
:disabled="disabled"
:aria-disabled="toString(disabled)"
@input="$emit('input', e)"
@change="$emit('change', e)"
/>
<button
aria-label="increment"
class="increment position-absolute h-50"
:disabled="incrementDisabled"
:aria-disabled="toString(incrementDisabled)"
@click="increment"
></button>
<button
aria-label="decrement"
class="decrement position-absolute h-50"
:disabled="decrementDisabled"
:aria-disabled="toString(decrementDisabled)"
@click="decrement"
></button>
</div>
...
</template>
<script>
...
methods: {
increment() {
this.$el
.getElementsByClassName("increment")[0]
.dispatchEvent(new KeyboardEvent("keydown", { keyCode: 38 }));
},
decrement() {
this.$el
.getElementsByClassName("decrement")[0]
.dispatchEvent(new KeyboardEvent("keydown", { keyCode: 40 }));
},
}
...
</script>
我只是不想添加这么多方法,只想让我的按钮在数字输入时像键盘一样上下。
【问题讨论】:
标签: javascript vue.js mouseevent keyboard-events dom-events