2010-05-10 63 views
0

如果多次单击菜单中的链接,Jquery加载函数不会停止。如何停止Jquery加载函数

jQuery代码看起来像:

$(document).ready(function(){ 

$(".menu_rfr").unbind("click").click(function() { 
$("#main").html('<img src="img/spin.gif" class="spin">'); 
location.replace($(this).attr('rel')); 
}); 

function handleClick() { 
$(this).unbind("click"); 
$("#main").html('<img src="img/spin.gif" class="spin">'); 
$("#main").load($(this).attr('rel'), function() { 

    // reactivate it after some loading has completed 
    $(this).click(handleClick);   
});   
} 
$(".menu_clickable").click(handleClick); 
}); 

你可以看到在link text

我怎样才能防止用户点击,如果DIV内容不被完全加载和永无止境的DIV装载样品页?

+0

为什么你问同样的确切问题,当有一个活跃的呢? http://stackoverflow.com/questions/2802403/jquery-stop-load-function-after-too-many-clicks – 2010-05-10 17:46:28

+0

这是无处接近有效的HTML ...有''和''标签将是一个好开始... – 2010-05-10 17:57:03

+0

@尼克 - 对不起,我以为上一个问题不会看到其他人... – Sergio 2010-05-10 19:07:50

回答

0

handleClick中的$(this)不是指元素。

下面是一些解决此问题的方法的代码。我认为它会起作用,但我不在可以测试它的计算机上。

$(document).ready(function(){ 

$(".menu_rfr").click(function() { 
    $("#main").html('<img src="img/spin.gif" class="spin">'); 
    location.replace($(this).attr('rel')); 
}); 

function handleClick(ele) { 
    $(ele).unbind("click"); 
    $("#main").html('<img src="img/spin.gif" class="spin">'); 
    $("#main").load($(this).attr('rel'), function() { 
     // reactivate it after some loading has completed 
     $(ele).bind('click',function(event){bindClick(event.target);});   
    });   
} 

function bindClick(ele){ 
    $(ele).bind('click',function(event){ 
     handleClick(event.target); 
    }); 
} 

$(".menu_clickable").each(function(){ 
    bindClick($(this)); 
}); 
}); 
+0

不,它不工作。它加载后的starks“spin.gif”并且不加载其他部分的DIV :( – Sergio 2010-05-10 19:05:48