Keyup()延迟

时间:2012-09-22 22:03:18

标签: jquery keyup

我正在使用JQuery上的keyup函数在用户按下某个字符或其他内容时将一个类添加到div中,并在它们触发退格时删除一个类。但是keyup函数有一个小延迟。我尝试过使用按键并没有延迟,但它没有检测到退格,所以我无法使用它。

有谁知道如何阻止我可以使用的密钥或其他功能的延迟?

3 个答案:

答案 0 :(得分:1)

$(function(){

    $('html').keyup(function(e){

        var d1 = new Date().getMilliseconds();

        if(e.which === 8){
            alert('Backspace pressed, delay: ' + new Date().getMilliseconds() - d1) + 'ms';
        }   

    });
});

答案 1 :(得分:1)

你在谈论这样的事情吗?

$(document).ready(function() {
    var timer,
        container = $('p');

    function doSomething()
    {
        container.text(new Date());
    }

    $('#find').keyup(function() {
        clearTimeout(timer);
        timer= setTimeout(doSomething, 200);
    });
 });  

演示:http://jsfiddle.net/tXJAz/

答案 2 :(得分:1)

  

但是keyup函数有一个小延迟。我尝试过使用按键   它没有延迟,但它没有检测到退格,所以我不能   用它。

您遇到的小延迟是由于keyup在用户释放密钥之前未触发的事实。

如果你希望延迟使用keydown而不是。

$('#target').keydown(function(eventData) {

    if(eventData.which === 8){
        // Backspace was pressed
    } else {
        // another key was pressed
    }
});

DEMO