作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
参见 http://jsfiddle.net/5MvnA/2/和控制台。
Fs 应该比 Ks 少,但根本没有 Fs。
我得到了去抖动代码
function debounce(fn, delay) {
var timer = null;
return function () {
var context = this, args = arguments;
clearTimeout(timer);
timer = setTimeout(function () {
fn.apply(context, args);
}, delay);
};
}
从这里http://remysharp.com/2010/07/21/throttling-function-calls/
介意检查我是否做错了吗?
最佳答案
你的代码应该是这样的
$('input').keyup( function() {
console.log('k');
});
$('input').keyup(debounce(f, 100));
在您的示例中,您永远不会调用返回的函数,它总是创建一个新函数。
根据您的评论。如何在不同的上下文中使用它。以下示例将向控制台写入 10 次 foo
,但只会添加一个时间戳。
function debounce(fn, delay) {
var timer = null;
return function () {
var context = this, args = arguments;
clearTimeout(timer);
timer = setTimeout(function () {
fn.apply(context, args);
}, delay);
};
}
function fnc () {
console.log("Date: ",new Date());
}
var myDebouncedFunction = debounce(fnc, 100);
function foo() {
console.log("called foo");
myDebouncedFunction();
}
for ( var i=0; i<10; i++) {
foo();
}
关于javascript - 去抖不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16696873/
我是一名优秀的程序员,十分优秀!