Javascript jQuery键入脚本

Javascript jQuery键入脚本,javascript,jquery,keypress,Javascript,Jquery,Keypress,一个简单的jQuery,在用户当前键入时将类.typing添加到标记中。我尝试过几种不同的方法,但都没有成功,不知道如何才能做到这一点 $('html').keypress(function(){ $(this).addClass('typing'); if ( /* No key is pressed again in the next 0.5 seconds */ ) { $('.typing').removeClass('typing'); }

一个简单的jQuery,在用户当前键入时将类
.typing
添加到
标记中。我尝试过几种不同的方法,但都没有成功,不知道如何才能做到这一点

$('html').keypress(function(){
    $(this).addClass('typing');

    if  ( /* No key is pressed again in the next 0.5 seconds */ ) {
        $('.typing').removeClass('typing');
    }
});

使用
setTimeout
(与
clearTimeout
结合使用)创建一个在0.5秒后执行特定代码的函数,以防止一次激活多个超时


使用
setTimeout
(与
clearTimeout
结合使用)创建一个在0.5秒后执行特定代码的函数,以防止一次激活多个超时


使用setTimeout()和clearTimeout()代替if。

使用setTimeout()和clearTimeout()代替if。

请指定您实际要求的是什么-是关于在if之后实现条件,还是因为这个脚本不适合您(document.ready stuff等)?下面的答案已经解决了这个问题。请具体说明您实际上在问什么-是关于在if之后实现条件,还是因为这个脚本不适合您(document.ready stuff等)?下面的答案已经解决了这个问题,实际上现在我已经试过了,输入几次后,它停止使用延迟,只需立即添加和删除it@JamesKyle对你的代码进行修改。您是否正确地实现了答案中的代码?@JamesKyle您缺少
timer=
。fiddle:事实上,现在我已经尝试过了,在输入几次之后,它停止使用延迟,只是立即添加和删除it@JamesKyle对你的代码进行修改。您是否正确地实现了答案中的代码?@JamesKyle您缺少
timer=
。固定小提琴:
var timer;                  //Local variable to hold time-out reference
function refreshPress(){
    clearTimeout(timer);    //Prevent stacked time-outs, only one is allowed
    timer = setTimeout(function(){
        $('.typing').removeClass('typing');
    }, 500); //0.5 seconds
}

$('html').keypress(function(){
    $(this).addClass('typing');  //This line can also be merged with refreshPress
    refreshPress();              // Call refreshPress
});