2012-08-07 53 views
0

我已經創建了一個網頁並使用load()函數加載固定div上的頁面。但是,不斷點擊不同的鏈接...整個網頁停止響應。使用jquery.load加載div()

這裏是我的加載頁面代碼:

$(document).ready(function() { 

     $('a').bind('click' , function(e) { 
      e.preventDefault(); // prevent the browser from following the link 
      e.stopPropagation(); // prevent the browser from following the link 

      $('#part1').load($(this).attr('href')); 
     }); 
    }); 

我也想改變URL時,我的鏈接上面的load()函數上點擊。

+0

你要麼沒有複製完整的代碼,要麼你錯過了最後一個關閉'});'關閉「就緒函數」(當前代碼只關閉「點擊函數」)。 – Oldskool 2012-08-07 12:16:06

回答

0

通過不斷點擊你添加一堆在後面運行的assync請求。他們都需要處理。因此,瀏覽器將其內容添加到#part1,並在每次請求返回時呈現它。這可能是頁面沒有響應的原因。

編輯

您可以顯示一個指標,讓用戶知道自己在做什麼,並防止再次進行負載。以下示例顯示防止在加載零件時執行加載。

$(document).ready(function() { 
    var isLoading = false; 

    $('a').bind('click' , function(e) { 
     e.preventDefault(); // prevent the browser from following the link 
     e.stopPropagation(); // prevent the browser from following the link 
     if(!isLoading){ 
      //start loading 
      isLoading = true; 
      $('#part1').load($(this).attr('href'), function(response, status, xhr) { 
       //this is the callback method for success or failure 
       //stop loading 
       isLoading = false; 
      }); 
     } 
    }); 
}); 

指示器的顯示/隱藏不應該難以添加。開始加載時顯示,停止加載時隱藏。

+0

我該如何解決這個問題 – behinddwalls 2012-08-07 14:11:17

+0

是否有任何替代此methos..load() – behinddwalls 2012-08-09 13:33:27

+0

加載是一個簡寫。您可以在設置網址的地方使用正常的[$ ajax](http://api.jquery.com/jQuery.ajax/)調用,並在您填寫'$('#part1' )'並處理停止加載。但基本上它也是這樣。另一個是[$ .get](http://api.jquery.com/jQuery.get/)。但在你的情況下,我猜負載不是一個不好的選擇..你爲什麼還要別的東西?它是不是像你想要的那樣工作? – VDP 2012-08-09 15:19:08