我要在每次keyup事件时用ajax来验证数据. 但在验证时如果有其他keyup时间就停止当前, 执行最后一次.
我试过5秒后, 但5秒后还是执行了全部的keyup事件.
求指点.
keyup事件会进入队列,总归要执行的,你设置一个状态位,keyup之后关闭,ajax结束以后开启,不知你是不是这个意思
var timeout;
$input.on('input', function(e){
clearTimeout(timeout);
timeout = setTimeout(function(){
$.post(...);
},5000);
});
可以考虑事件节流方式,如:
你规定500毫秒以后执行ajax,那么你可以设置一个timer,如果第一次keyup和第二次keyup的时间小于500则清除timer,否则执行timer
那就不要keyup了,blur吧。