如何停止Jquery加载功能

时间:2010-05-10 16:40:01

标签: 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加载,如何阻止用户点击?

1 个答案:

答案 0 :(得分: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));
});
});