首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

js/jquery 多次触发事件只执行一次,该如何解决

2012-05-24 
js/jquery多次触发事件只执行一次我是想实现类似于autocomplete样子,当文本框一直在输入时,不会执行操作,

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);//在这里每次都会弹出好几次。。
}

热点排行