我有这段代码
$("input").on('keyup', function () {
$("block"),slideDown("slow")......
问题是,当我快速写入时,该块将再次执行“动画”并且比我写的慢得多
我是否可以使用另一个事件来运行代码“在我写完之后”让我说,我停止写入然后它需要500毫秒然后执行代码。
答案 0 :(得分:1)
function throttle(fn, time ){
var timer = 0;
return function() {
clearTimeout(timer);
timer = setTimeout($.proxy(fn, this), time);
};
}
$("input").on('keyup', throttle(function () {
$("block").slideDown("slow")
},500));
节流程返回一个新函数,该函数从上次调用函数起经过500毫秒后调用旧函数。
答案 1 :(得分:0)
这样的事情是我以前用过的:
$(input).keyup(onKeyUp);
/**
* Handler for the keyup event
*/
function onKeyUp() {
//reset
clearTimeout(myTimer);
myTimer = setTimeout(otherFunction, 500);
}
现在在500毫秒后调用otherFunction,但在每个keyup事件中,此计时器将被重置。
答案 2 :(得分:0)
尝试使用......
function slideDown(){
...
}
// call
setTimeout(function(){ slideDown(); }, 1000);