javascript - 去抖不起作用

标签 javascript debouncing

参见 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/

相关文章:

javascript - 用自定义异常替换 'undefined'

javascript - 如何将Jquery应用于文本框、CssClass而不是Jquery、Bootstrap中的ID

javascript - TypeORM:如何查询与字符串数组输入的多对多关系以查找所有字符串都应存在于相关实体列中的实体?

javascript - Ember 2,使用 Ember.run.debounce 调用路由中的函数

javascript - 在连续函数中使用 jQuery 的加载

javascript - 更改对 vue 实例的引用

javascript - 检查链接是否包含 javascript

javascript - 如何从 Javascript 图像中删除线条

javascript - JS/JQuery 中的去抖动滚动事件是如何工作的?

javascript - 去抖动和返回