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

时间:2014-09-18 08:59:26

标签: 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
    }
});

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

3 个答案:

答案 0 :(得分: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;
});

更新了fiddle

答案 1 :(得分:4)

使用

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

e.preventDefault();将重置输入

答案 2 :(得分:1)

试试这个。

$(document).on('keydown', function(e) {
    e.preventDefault();
    if(e.altKey) {
        $('div').addClass('bar');  // only every second hit will add the class
    }
});

原因是alt键出现焦点移动到“自定义和控制谷歌chorome”按钮 enter image description here