我是想实现类似于autocomplete样子,当文本框一直在输入时,不会执行操作,当停下来一段时间后再去执行操作
且只执行一次,我的代码如下,每次都执行好几次。。有什么解决的办法没有。
<input type="text" />$(function () {
    var t;
    $("input").keypress(function () {
        if (t != undefined) {
            clearTimeout(t);
        }
    }).keyup(function () {
        t = setTimeout("geta()", 1000);
    });
});function geta() {
    alert();//在这里每次都会弹出好几次。。
}

解决方案 »

  1.   

    楼主参考下
    http://topic.csdn.net/u/20120518/10/de1bae74-f597-441d-b72e-d0fda66e6e81.html
      

  2.   

    改成这样测试一下,注意浏览器兼容问题。
    $(function () {
        var t;
        $("input").keypress(function () {
            if (t != "undefined") {
                clearTimeout(t);
            }
        });
     $("input").keyup(function () {
              t = setTimeout("geta()", 1000);
     if(t>2) 
     {
       clearTimeout(t);
       t = setTimeout("geta()", 1000);
     }     });
    });function geta() {
        alert(1);//在这里每次都会弹出好几次。。
    }