我有一个名为
#search
的元素,当keyup
事件发生时应该触发一个函数。这个函数只有在一定时间内没有发生keyup
事件(例如500毫秒)时才会触发。这将防止搜索结果在按下每个字母时更新。问题是,在backbone.js中,我的事件是以哈希形式存在的,适用的事件看起来像这样:'keyup #search' : 'setSearch'
,当keyup
事件发生时,它调用setSearch()
函数。我现在不太清楚如何处理它。我尝试了各种方法,但没有一种方法可以在函数结束后保持定时器。我大致有以下代码:setSearch: function(event) {
var timer = window.setTimeout( function() {
// run function here
alert('fired');
}, 500);
},
与其使用alert('fired')
,我将运行自己的函数。我能理解为什么这段代码无法运行(为每个keyup
事件设置了一个计时器)。但我仍不清楚我还能尝试什么。
_.throttle
的帖子,实际上我发现_.debounce()
对我的需求更加适合。 - Peter O.