Jquery加载器仅适用于第一个请求

时间:2013-04-10 22:09:01

标签: jquery ajax loader

我实际上试图为我的应用程序进行“符合人体工程学的触摸”,因此我获得了3个获取HTML内容并将其加载到div中的链接。除了仅在第一次请求期间出现的加载器以外,一切正常。

这是我的代码

$(document).ready(function() {

 $('#loader')
.hide()  // hide it initially
.ajaxStart(function() {
    $(this).show();
})
.ajaxStop(function() {
    $(this).hide();
});

var uri_segment = "<?=$this->uri->segment(3);?>";


$('#editTeam').click(function (e) {

    e.preventDefault();
    $(this).parent().siblings().removeClass('active');

    $(this).parent('li').addClass('active');



    $.ajax({
        type : "GET",
        async : true,
        url : "<?=base_url().'ajax/team/get_editTeam/';?>"+uri_segment,
        dataType : "html",
        success : function(data){
                $('#divPage').html(data);

        }
    });

    return false;
});

$('#editRights').click(function (e){
    e.preventDefault();

    $(this).parent().siblings().removeClass('active');


    $(this).parent('li').addClass('active');

    $.ajax({
        type : "GET",
        async : false,
        url : "<?=base_url().'ajax/team/get_editRights/';?>"+uri_segment,
        dataType : "html",
        success : function(data){
                $('#divPage').html(data);
        }
    });
    return false;
});


$('#addMember').click(function (e){

    e.preventDefault();

    $(this).parent().siblings().removeClass('active');


    $(this).parent('li').addClass('active');



        $.ajax({
            type : "GET",
            async : false,
            url : "<?=base_url().'ajax/team/get_addMember/'.$this->uri->segment(3);?>",
            dataType : "html",
            success : function(data){
                $('#divPage').html(data);

            }
        });
        return false;
});


});

1 个答案:

答案 0 :(得分:0)

尝试将ajaxStart / ajaxStop移到文档上。 Per the documentation, as of 1.8 you should only bind it to document.

$('#loader').hide();

$('document')
  .ajaxStart(function() {
    $('#loader').show();
  })
  .ajaxStop(function() {
    $('#loader').hide();
  });