如何将.keyup()处理程序推迟到用户停止键入?我有一个搜索区域。现在它会搜索每一个按键。因此,如果有人键入“Windows”,它将使用Ajax搜索每一个键:“W”、“Wi”、“Win”、“Wind”、“Windo”、“Window”、“Windows”。我希望有一个延迟,所以它只搜索当用户停止输入200毫秒。中没有此选项。keyup我试过了setTimeout但没有用。我怎么能这么做?
3 回答
慕容708150
TA贡献1831条经验 获得超4个赞
setTimoutclearTimeoutkeyup
var globalTimeout = null; $('#id').keyup(function(){
if(globalTimeout != null) clearTimeout(globalTimeout);
globalTimeout =setTimeout(SearchFunc,200); } function SearchFunc(){
globalTimeout = null;
//ajax code}var globalTimeout = null; $('#id').keyup(function() {
if (globalTimeout != null) {
clearTimeout(globalTimeout);
}
globalTimeout = setTimeout(function() {
globalTimeout = null;
//ajax code
}, 200); }
慕的地6264312
TA贡献1817条经验 获得超6个赞
function makeDelay(ms) {
var timer = 0;
return function(callback){
clearTimeout (timer);
timer = setTimeout(callback, ms);
};};var delay = makeDelay(250);$(selector1).on('keyup', function() {delay(someCallback);});
$(selector2).on('keyup', function() {delay(someCallback);});$(selector1).on('keyup', function() {makeDelay(250)(someCallback);});
$(selector2).on('keyup', function() {makeDelay(250)(someCallback);});添加回答
举报
0/150
提交
取消
