我想在用户输入文本输入后执行操作,但忽略删除键。
我可以等待"让用户使用下划线的debounce
函数完成输入文本输入。
我还需要听取确保删除密钥没有被使用,这就是我的代码似乎崩溃的地方。
以下是我尝试过的http://jsfiddle.net/4Wn8L/:
var lazyChange = _.debounce(function(e){
if (e.keyCode != 8) {
console.log('User entered a key that wasnt backspace!');
}
}, 300);
$('#appPreview').on('keyup', 'input', lazyTripChange);
答案 0 :(得分:0)
你可以这样做:
<input type="search" class="lazy-search">
$(document).ready(function() {
var thread = null;
var delayMs = 500;
function doSearch(str) {
console.log('search: ' + str);
}
$('.lazy-search').keyup(function(e) {
if (e.keyCode != 8) {
clearTimeout(thread);
var target = $(this);
thread = setTimeout(function() {
doSearch(target.val());
}, delayMs);
}
});
});
小提琴:http://jsfiddle.net/HfY2N/1/(检查控制台)
&#34;当用户按下一个键时,创建一个超时,在n毫秒后进行搜索,但如果用户在该计数到期之前再次按下一个键,则清除它并创建另一个&#34;