js/jquery  多次触发事件只执行一次
我是想实现类似于autocomplete样子,当文本框一直在输入时,不会执行操作,当停下来一段时间后再去执行操作
且只执行一次,我的代码如下,每次都执行好几次。。有什么解决的办法没有。
HTML code
<input type="text" />
JScript code
$(function () {
    var t;
    $("input").keypress(function () {
        if (t != undefined) {
            clearTimeout(t);
        }
    }).keyup(function () {
        t = setTimeout("geta()", 1000);
    });
});
function geta() {
    alert();//在这里每次都会弹出好几次。。
}
------解决方案--------------------须得先知道你对一直在输入和停止的定义
一直在输入指的是只需焦点一直在文本框,还是需要在一定时间内有按键
如果是前者,只需在失去焦点的事件函数里面执行代码,如果是后者
则获得焦点时定义计时器,在一段时间后执行代码。如果有按键,则修改延时时间,或者注销前计时器重新定义一个
------解决方案--------------------
楼主参考下
http://topic.csdn.net/u/20120518/10/de1bae74-f597-441d-b72e-d0fda66e6e81.html
------解决方案--------------------改成这样测试一下,注意浏览器兼容问题。
$(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);//在这里每次都会弹出好几次。。
}