【发布时间】:2011-07-20 02:35:44
【问题描述】:
我有一个#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 事件设置一个计时器。但我仍然不清楚我还能尝试什么。
【问题讨论】:
标签: javascript jquery backbone.js dom-events settimeout