keyup事件延迟处理
表单中keyup事件自动检索数据中,考虑性能需延迟处理按键事件,无需每次keyup均执行异步请求。
利用event的timeStamp来标记时间,这样每次的keyup事件都会修改last的值,注意last必需为全局变量。如果时间差为0(也就是你停止输入1s之内都没有其它的keyup事件发生)则执行。
需处理that=$(this);,否则报错Cannot read property 'toLowerCase' of undefined
基础代码如下:
var oldtime;
$('input[name=dept]').keyup(function(event){
oldtime = event.timeStamp;
that=$(this);
setTimeout(function(){
if((oldtime-event.timeStamp)==0){
var name = that.val();
$.ajax({
url:"{:U('Dept/ajax_get_dept')}",
type: "post",
async: false,
data: {'keyword':name},
dataType:"html",
success: function (data) {
console.log(data);
}
});
}
},500);
})