如何将.keyup()处理程序推迟到用户停止键入?我有一个搜索区域。现在它会搜索每一个按键。因此,如果有人键入“Windows”,它将使用Ajax搜索每一个键:“W”、“Wi”、“Win”、“Wind”、“Windo”、“Window”、“Windows”。我希望有一个延迟,所以它只搜索当用户停止输入200毫秒。中没有此选项。keyup我试过了setTimeout但没有用。我怎么能这么做?
3 回答
慕容708150
TA贡献1831条经验 获得超4个赞
setTimout
clearTimeout
keyup
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
提交
取消