jquery给文本框绑定按键事件并延时触发,只触发一次!
$("#id").bind("keyup",function(){console.log(123);});<inputid="id"type="text"/>我想要在上面...
$("#id").bind("keyup",function(){
console.log(123);
});
<input id="id" type="text" />
我想要在上面的代码上做个延时触发,时间为1秒!比如:现在我在文本框中依次输入a,b,c(间隔都在1秒内),但上面的代码会打出3次123。但我想要的是只打出一次123,如果我的abc输入的间隔在1秒外,就打出多个123!来高人指点下! 展开
console.log(123);
});
<input id="id" type="text" />
我想要在上面的代码上做个延时触发,时间为1秒!比如:现在我在文本框中依次输入a,b,c(间隔都在1秒内),但上面的代码会打出3次123。但我想要的是只打出一次123,如果我的abc输入的间隔在1秒外,就打出多个123!来高人指点下! 展开
5个回答
展开全部
你可以这样写:
$("#id").unbind("keyup");
$("#id").bind("keyup",function(){
console.log(123);
});
追问
不懂你为什么这么写,和我的题意完全不一致!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐于2016-09-21
展开全部
jQuery(function ($) {
var delay = (function () {
var timer = 0;
return function (callback, time) {
clearTimeout(timer);
timer = setTimeout(callback, time);
};
})();
$('#id').keyup(function () {
delay(function () {
console.log('test');
}, 1000);
});
})
var delay = (function () {
var timer = 0;
return function (callback, time) {
clearTimeout(timer);
timer = setTimeout(callback, time);
};
})();
$('#id').keyup(function () {
delay(function () {
console.log('test');
}, 1000);
});
})
追问
大神,你的这个太牛逼!我自认为jquery还不错,但你这个我很多没看懂!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这样肯定不行的,一定会输出三次
你不要用按键事件,用光标离开文本并且文本有修改事件
change
$(function(){
$("文本id").change(function(){
//执行延迟
//这里举例改变文本背景颜色
//$(this).css("background-color","#CCC");
});
});
希望可以帮到你!
追问
我一定要用按键事件!change事件体验下不好!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
延时触发只是延时,不会减少触发次数。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询