vue 控制键盘 自带修饰符
网页做防百度搜索栏,看有代码用到了@keydown.down=“changeDown()”,@keydown.up.prevent=“changeUp()”
控制在 input 框中 键盘使用⬆️和⬇️的,我们一般使用键盘的索引,如但代码多且不优雅
keydown(event) {
// console.log(event);
//下键:40 上键:38
if (event.keyCode == 38) {
//按的上键
this.listIndex--;
if (this.listIndex < 0) {
this.listIndex = this.arr.length - 1;
}
this.wd = this.arr[this.listIndex];
} else if (event.keyCode == 40) {
//说明你按的是下键
this.listIndex++;
if (this.listIndex > this.arr.length - 1) {
this.listIndex = 0;
}
this.wd = this.arr[this.listIndex];
} else if (event.keyCode == 13) {
//如果你按的是enter,那么就跳转到百度搜索结果
window.open("https://www.baidu.com/s?wd=" + this.wd);
}
}
如果使用vue自己的修饰符更直观,@keydown.down=“changeDown()”,@keydown.up.prevent=“changeUp()”
代码如下
<a-input placeholder="请输入能力名称"
v-model="searchName"
@keyup="onSearchData($event)"
@keydown.down="changeDown()"
@keydown.up.prevent="changeUp()"
@pressEnter="submitData()"
@focus="focusData()"
@click="settingEvent($event)">
<a-icon slot="prefix" type="search" />
</a-input>
案例
@keydown.down=“changeDown()” 控制在 input 框中 键盘使用⬆️
@keydown.up.prevent="changeUp()"控制在 input 框中 键盘使用⬇️
其键盘按键修饰符
.enter
.tab
.delete (捕获“删除”和“退格”键)
.esc
.space
.up
.down
.left
.right
.ctrl
.alt
.shift
.meta
鼠标修饰符
.left
.right
.middle