onkeydown和onkeyup之间的行为差​​异

时间:2017-03-21 23:43:02

标签: javascript vue.js

想知道是否有人可以帮助我解决keyup和keydown之间的差异以及他们为什么不以同样的方式工作?

我在这里有一个jsfiddle,我在做一些例子 https://jsfiddle.net/m9wcn982/1/

HTML:     

<div id="exercise">
    <div>
        <input type="text" v-on:keyup="listen">
        <p>{{ value }}</p>
    </div>
    <div>
        <input type="text" v-on:keydown="listen">
        <p>{{ value }}</p>
    </div>
</div>

使用Javascript:

new Vue({
    el: '#exercise',
    data: {
        value: ''
    },
    methods: {
      listen: function(){
        this.value = event.target.value;
      }
    }
});

为什么keydown落后1个字符,而keyup总是输出在按下它后立即输入的键,例如,我输入&#34; foo&#34;进入第二个盒子,但只得到了#34;#34;作为一种价值。但如果我输入&#34; foo&#34;进入我得到的第一个盒子&#34; foo&#34;作为价值。

2 个答案:

答案 0 :(得分:1)

keydown是第一次按下按键的时间。该元素的价值尚未改变。这是一种可以取消更改值的方法。

keyup是它被释放的时间,并且在2之间,元素的值已经发生变化。

答案 1 :(得分:0)

当用户按下某个键时,会激活keydown和keyup事件。

keydown:用户按下某个键时触发。当用户按下键时,它会重复。

keyup:在用户释放密钥后,在执行该密钥的默认操作后触发。