2012-12-08 46 views
1

我使用ajaxStart和ajaxStop顯示加載gif。 這是工作的罰款,直到我說這段代碼:AjaxStart和AjaxStop不工作

$(function(){ 
$('.link a').live('click', function(ev) { 

    ev.preventDefault(); 
    ev.stopPropagation(); 


    $('#main').load($(this).attr('href')); 


    return false; 
}); 
}); 

這是我ajaxStart /停止代碼:

$(document).ajaxStart(function(){ 
    $("#loading").show(); 
}).ajaxStop(function(){ 
    $("#loading").hide(); 
}); 

請幫助:)

編輯:我的代碼添加這是導致問題,被添加到啓用一個div中的頁面鏈接單擊時加載在div本身的鏈接,而不是加載整個窗口。 AjaxStart和AjaxStop在新加載頁面時正常工作,但是一旦單擊div(加載頁面)中的鏈接,AjaxStart就不會觸發。

的鏈接(這是在頁面中的DIV中)的代碼:

echo "<span class = 'link'><a href='feed.php?".$new_query_string ."' id='page_a_link'  name='page_a_link' >$i</a></span>"; 

echo "<span class = 'link'><a id='page_a_link' name='page_a_link' href='feed.php?".$new_query_string ."' >< Pre</a></span>"; 

echo "<span class = 'link'><a href='feed.php?".$new_query_string ."' id='page_a_link' name='page_a_link' >Next</a></span>"; 

這些是分頁。我只是將鏈接部分從PHP代碼中取出。

+0

我認爲這是因爲ev.stopPropogation();嘗試刪除它。 – kennypu

+0

新代碼破解的方式是什麼? – slashingweapon

+0

嘗試刪除ev.stopPropogation()。沒有區別。 –

回答

0

我認爲問題是,當你重新加載頁面的內容,因此分頁鏈接,將被替換,你失去的舊綁定click事件

試試這個代碼:

$(function(){ 


    function bindPagination() { 
    $('span.link a').on('click', function(ev) { 
     ev.preventDefault(); 
     // ev.stopPropagation(); 

     $('#main').load($(this).attr('href'), function(){ 
      //callback function fired when page loaded 
      //now rebind click event 
      bindPagination(); 
     }); 

     return false; 
    }); 
    } 

}); 

和嘗試用這種方式更改「加載器」:

$('#loader') 
    .bind("ajaxSend", function() { 
    $(this).show(); 
     }) 
    .bind("ajaxComplete", function() { 
    $(this).hide(); 
}); 
+0

.link中添加了更多詳細信息,並且a.link無效。我發佈了您請求的HTML代碼。謝謝! –

+0

好的我編輯了我的迴應和小提琴。現在嘗試 – joeyramone76

+0

仍然是同樣的問題。另一件我沒有提及的頁面加載工作。加載頁面,只是ajaxStart不執行。感謝您的幫助到目前爲止:) –

相關問題