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);
})

Tags: javascript

添加新评论