_.debounce函数奇怪的行为在几个输入上

时间:2017-05-29 10:19:50

标签: javascript jquery lodash debounce

我在页面上有4个输入和这样的代码

$('input').on('keyup', _.debounce(function(){
  console.log('Keyup fired')
}, 10000))

所以在$('输入')中我收集了4个输入。 当我开始快速输入所有4个输入时,10秒后我只得到一个' Keyup被解雇'在控制台中。

似乎每个输入都共享相同的功能。 但在我看来,每个输入都应该有它自己的_debounce函数实例。

为什么我错了?根据我的观点,为什么我写COLLECTION.on(event,fn)。 Jquery应映射4个输入并为每个输入分配调用_.debounce()的结果。因此每个输入都有自己的去抖功能实例。 谢谢

1 个答案:

答案 0 :(得分:4)

  

似乎每个输入共享相同的功能。

当然,因为您为所有输入提供了单个事件处理程序。

如果你想要单独的处理程序,那么你需要单独为每个输入绑定事件:

$('input').each(function() {
  $(this).on('keyup', _.debounce(function() {
    console.log('Keyup fired')
  }, 10000))
})