为什么在Vue.js @ keydown.alt工作,但@ keyup.alt不?

问题描述 投票:3回答:1

我有,我想,当alt键按下被设置好的1和0是不是当一个变量,但结果是,仅Vue公司@ keydown.alt执行。

我试着用回车键,它完美的作品,在两种状态之间切换,但我想不通为什么它不与Alt键。

    @keydown.alt="scheda++"
    @keyup.alt="scheda--"
vue.js keyup
1个回答
3
投票

从Vuejs documentation

需要注意的是修饰键从常规按键不同,与KEYUP事件时,他们有当发出该事件被按下。换句话说,如果你发布一个键,同时按住CTRL keyup.ctrl才会触发。如果你独自释放Ctrl键也不会触发。如果你想这样的行为,使用CTRL键代码来代替:keyup.17

但对于Alt键还有一个问题,如果你使用的是Windows。在Windows系统中,窗口解释按下Alt如想打开窗口的菜单,keyup不再被触发。我们要防止默认行为,我们可以event.preventDefault()做到这一点,或者在Vue公司的世界里,.prevent event modifier

new Vue({
  el: '#app',
  data: {
    counter: 0
  },
  methods: {
  	increment: function() {
    	console.log('inc')
    	this.counter += 1;
    },
    decrement: function() {
    	console.log('dec')
    	this.counter -= 1;
    }
  }
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>

<div id="app">
  <input @keydown.18.prevent="increment()" @keyup.18.prevent="decrement()">
  <p >{{ counter }}</p>
</div>
© www.soinside.com 2019 - 2024. All rights reserved.