1

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

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

所以在 $('input') 我有 4 个输入的集合。当我开始在所有 4 个输入中快速键入时,10 秒后,我在控制台中只收到一个“Keyup 触发”。

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

为什么我错了?根据我的观点,我为什么要写 COLLECTION.on(event, fn)。Jquery 应该映射 4 个输入并为每个输入分配调用 _.debounce() 的结果。所以每个输入都会有它自己的去抖动函数实例。谢谢你

4

1 回答 1

4

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

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

如果您想要单独的处理程序,则需要分别为每个输入绑定事件:

$('input').each(function() {
  $(this).on('keyup', _.debounce(function() {
    console.log('Keyup fired')
  }, 10000))
})
于 2017-05-29T10:22:29.490 回答