jQuery Keydown/Keyup只能每隔一段时间运行一次

Jon*_*han 0 javascript jquery

我有与文档绑定的keyup/down事件.Keydown只会在第二次发射,而我不知道为什么.我在类似的SO-Questions上尝试了许多建议,但没有一个有效.

我的Javascript:

$(document).on('keyup', function() {
    $('div').removeClass('bar');
});
$(document).on('keydown', function(e) {
    if(e.altKey) {
        $('div').addClass('bar');  // only every second hit will add the class
    }
});
Run Code Online (Sandbox Code Playgroud)

这应该指出问题:http: //jsfiddle.net/6yxt53m9/1/

Rob*_*obF 7

您需要添加return false;按键功能:

$(document).on('keyup', function() {
    $('div').removeClass('bar');
    return false;
});

$(document).on('keydown', function(e) {
    if(e.altKey) {
        $('div').addClass('bar');
    }
    return false;
});
Run Code Online (Sandbox Code Playgroud)

更新了小提琴.


小智 6

使用

$(document).on('keyup', function(e) {
    $('div').removeClass('bar');
    e.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)

e.preventDefault(); 将重置输入