2012-02-14 47 views
1

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

这里是代码

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

return false;不工作

+0

请更多代码。 – Alfabravo 2012-02-14 19:15:46

+0

需要更多的代码... – elclanrs 2012-02-14 19:15:56

+0

你能提供一些更多的细节:你试图达到什么目的? – ComputerSaysNo 2012-02-14 19:16:01

回答

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') 
    }    
}); 
+0

的HTML但如果我们有不同的div加载不同的HTML点击不同的按钮在一个页面上。 – 2012-02-14 19:44:33

+0

查看我上面的编辑。 – 2012-02-14 19:49:32

0

使用Firebug,看看你的事件处理程序是getti ng不止一次地被调用。您可能会附加多个匿名事件处理程序。

1

您必须使用id作为目标div,否则所有div将一次受到影响。而不是使用$('div')使用特定的ID与ID。 $('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'); 
    } 
});