2011-04-18 82 views
0

你好我如何編輯我的下面的代碼來自動重新加載指定div的內容?對我的jQuery代碼的小修改

我的代碼下面重新載入一個名爲form.php的文件,我想用div替換。

<style> 
    .loading { 
     height:24px; 
     background: url('http://b.static.ak.fbcdn.net/rsrc.php/v1/yb/r/GsNJNwuI-UM.gif') 50% 50% no-repeat; 
     } 
</style> 

<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js'></script> 
<script language='JavaScript'> 
setInterval('SANAjax();', 10000); ///////// 10 seconds 

$(function() 
{ 
    SANAjax = function() 
    {  
     $('#reservationdetails') 
      .empty() 
      .addClass('loading') 
      .load('form.php', function() 
      { 
       $('#reservationdetails').removeClass('loading') 
      }); 

    } 
}); 
</script> 

謝謝!

+0

這篇文章的標題非常糟糕。它確實比「幫我」或「修復我的代碼」更好,特別是因爲我們已經可以從標籤中看到它的jQuery。你應該考慮編輯你的問題來修正題目。 – Domenic 2011-04-18 02:32:03

回答

4

重新排序代碼:

$(function() { 
    var SANAjax = function(){ 
     $('#reservationdetails').empty().addClass('loading') 
      .load('form.php', function() { 
      $(this).removeClass('loading') 
      }); 
    } 
    setInterval(SANAjax, 10000); 
}); 

我認爲#reservationdetails是要加載

的性反應的股利沒有必要爲一個字符串傳遞給setInterval。始終將功能參考傳遞給它(與setTimeout相同)。

+0

+1從不將字符串傳遞給'setInterval'。 – Domenic 2011-04-18 02:32:52

+0

謝謝!我可以重新加載一個div的內容而不需要加載文件嗎?這是因爲在該div中有一個腳本可以獲得一些結果並創建一個新的php文件,這不是一個選項。 – EnexoOnoma 2011-04-18 02:35:01

+0

嗨菲利克斯,我如何加載身體負載的網頁,並繼續10000間隔?因爲首先加載它需要一些時間。 – EnexoOnoma 2011-04-18 03:32:20

2

Felix Kling的回答是正確的。

另外值得注意的是:以這種方式使用setInterval是非常不好的做法,因爲您不確定.load是否會在您指定的10秒內返回。 (例如,考慮移動設備。)即使它在9秒內返回,也只有一秒鐘纔會發出下一個請求。最好在回調中做一個setTimeout,像這樣:

$(function() { 
    function loadReservationDetails() { 
     $('#reservationdetails') 
      .empty() 
      .addClass('loading') 
      .load('form.php', function() { 
       $(this).removeClass('loading'); 
       setTimeout(loadReservationDetails, 10000); 
     }); 
    } 

    loadReservationDetails(); 
}); 
+0

+1好點.. – 2011-04-18 02:33:00

+0

嗨Domenic,我怎樣才能加載身體負載的網頁,並繼續10000間隔?因爲首先加載它需要一些時間。 – EnexoOnoma 2011-04-18 03:32:41

+0

我的回答是...你讀過了嗎? – Domenic 2011-04-18 06:16:10