Javascript jQuery键入脚本
一个简单的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'); }
.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
});