【发布时间】:2017-10-28 12:34:04
【问题描述】:
我正在开发一个实时 ajax 搜索字段。所以我们有:
<input type="search" id="search">
我想在用户停止输入 500 毫秒后触发搜索。
我是这样工作的:
function throttle(f, delay){
var timer = null;
return function(){
var context = this, args = arguments;
clearTimeout(timer);
timer = window.setTimeout(function(){
f.apply(context, args);
},
delay || 500);
};
}
$('#search').keyup(throttle(function(){
// do ajax
}));
问题是:如果用户按住shift键并松开它,搜索就会触发。因此没有添加新键,并且提交了相同的搜索词。
我怎样才能使它仅在添加/删除新角色时触发?
【问题讨论】:
-
change事件而不是keyup怎么样? -
@MartinAdámek 你能发布答案吗?
标签: javascript jquery ajax