如何禁用 javascript 搜索自动完成的多个请求?
How to disable multiple request on the javascript search autocomplete?
我正在使用 Turbolinks.visit
操作,通过 $(document).on("input");
...
Html
<form id="mainSearch" method="get" autocomplete="off">
<input type="search" name="s" placeholder="Search" />
</form>
Javascript
$(document).off().on("input", "#mainSearch", function(e) {
e.stopImmediatePropagation();
e.stopPropagation();
e.preventDefault();
var ser = $(this).serialize();
setTimeout(function(){
Turbolinks.visit(
homeurl+"/?"+ser,
{
change: ['content']
}
);
},110);
return false;
});
它工作正常,但是当按住一个键时事件触发了多个请求。
我如何采取预防措施来保持按下状态? .on("input"
你是不是忘记取消之前的定时器了?
var timer = null;
$(document).off().on("input", "#mainSearch", function(e) {
e.stopImmediatePropagation();
e.stopPropagation();
e.preventDefault();
var ser= $(this).serialize();
clearInterval(timer);
timer = setTimeout(function(){
Turbolinks.visit(
homeurl+"/?"+ser,
{
change: ['content']
}
);
},110);
return false;
});
编辑:与其重新发明轮子,使用现有解决方案始终是一个不错的选择,$.debounce()
正是您要寻找的。
您可能正在寻找 因为您正在使用 JQuery 您可以使用 $.debounce
下面是一些可以尝试的示例 http://jsfiddle.net/cowboy/cTZJU/
我正在使用 Turbolinks.visit
操作,通过 $(document).on("input");
...
Html
<form id="mainSearch" method="get" autocomplete="off">
<input type="search" name="s" placeholder="Search" />
</form>
Javascript
$(document).off().on("input", "#mainSearch", function(e) {
e.stopImmediatePropagation();
e.stopPropagation();
e.preventDefault();
var ser = $(this).serialize();
setTimeout(function(){
Turbolinks.visit(
homeurl+"/?"+ser,
{
change: ['content']
}
);
},110);
return false;
});
它工作正常,但是当按住一个键时事件触发了多个请求。
我如何采取预防措施来保持按下状态? .on("input"
你是不是忘记取消之前的定时器了?
var timer = null;
$(document).off().on("input", "#mainSearch", function(e) {
e.stopImmediatePropagation();
e.stopPropagation();
e.preventDefault();
var ser= $(this).serialize();
clearInterval(timer);
timer = setTimeout(function(){
Turbolinks.visit(
homeurl+"/?"+ser,
{
change: ['content']
}
);
},110);
return false;
});
编辑:与其重新发明轮子,使用现有解决方案始终是一个不错的选择,$.debounce()
正是您要寻找的。
您可能正在寻找 $.debounce
下面是一些可以尝试的示例 http://jsfiddle.net/cowboy/cTZJU/