如何使用jQuery避免重复的html加载

时间:2012-02-14 19:13:20

标签: jquery html

我有jQuery调用html并加载到div。我正在使用keyup事件。我看到html数据附加到div但多次(重复)。如何避免多次请求并加载HTML一次。

这是代码

  $('input').keyup(function(){
     $('div').load('my.html');
     return false;
  });    

return false;无效

3 个答案:

答案 0 :(得分:1)

穷人的版本:

var loaded=0
$('button').click(function(){
  if(loaded==0) {
    $('div').load('my.html');
  }
  loaded = 1
}); 

编辑:

$('button').click(function(){
    if(!$('div').hasClass('loaded')) {
        $('div').load('my.html');
        $('div').addClass('loaded')
    }               
}); 

答案 1 :(得分:1)

您必须使用id作为目标div,否则所有div都会立即受到影响。而不是使用$('div')使用具有id的特定div。 $('div')。load(...)将对页面上的每个div应用相同的操作,因为没有div最初有“加载”类。

$('input').keyup(function(e){
   e.stopPropagation(); // to stop event bubling
   e.preventDefault(); // to stop it from being submitted if it's in the form 
   var my_div=$('#some_div');
   if(!my_div.hasClass('loaded'))
   {
      my_div.load('my.html', function() {
      my_div.addClass('loaded');
   }  
}); 

答案 2 :(得分:0)

使用Firebug查看您的事件处理程序是否被多次调用。您可以附加多个匿名事件处理程序。