3

所以这是我正在使用的代码:

$(function(){
    $('<div id="info" style="width:auto; height:auto;"/>').load('test.php?var='+d+' #se', function() {
        $('#main').append(this);
    });
});
}

现在,当我触发该功能(在输入框中使用 keyup)时,加载的 div 会在每个 keyup 事件上一遍又一遍地附加。

我正在使用 jQuery 1.5 - 在旧版本中,即 1.2.6,第一次后没有附加 div 并且它工作正常(错误?)。

如何防止 div 被一遍又一遍地附加?(不幸的是,禁用“触发器”不是一个选项。)我也尝试了 appendTo,这几乎是同样的问题。

请有人帮助我!非常感谢

4

2 回答 2

2

听起来你可以.one用来绑定你的 keyup 处理程序:

$('whatever').one('keyup', function() {
    $('<div id="info" style="width:auto; height:auto;"/>').load('test.php?var='+d+' #se', function() {
        $('#main').append(this);
    });
});

.one函数的作用与此相同,只是.bind它在执行一次后解除绑定。

于 2011-02-09T06:27:49.297 回答
0

利用

$(function(){
   if($("#info").length==0)
   {
      $('<div id="info" style="width:auto; height:auto;"/>').load('test.php?var='+d+' #se', function() {
        $('#main').append(this);
      });
   }
});
}

假设“#info”是动态添加的。

于 2011-02-09T05:28:24.113 回答