2011-04-13 130 views
1

任何人都可以看到爲什麼這個jQuery ajax不工作?它應該每秒運行一次,但它根本沒有運行。jQuery ajax不工作?

的源代碼:

<script type="text/javascript"> 
var auto_refresh = setInterval(
function() 
{ 

var ID = $(this).attr("id"); 
if(ID) 
{ 
$("#more"+ID).html('<img src="moreajax.gif" />'); 

$.ajax({ 
type: "POST", 
url: "ajax_more.php", 
data: "lastmsg="+ ID, 
cache: false, 
success: function(html){ 
$("ol#updates").prepend(html); 
$("#more"+ID).remove(); 
} 
}); 
} 
else 
{ 

} 


return false; 

}, 10000); 
+0

我不太確定,但我認爲setInterval的第一個參數是作爲字符串的函數名稱,而不是函數本身。 – Eliasdx 2011-04-13 21:30:56

+4

@Eliasdx:你錯了。可以將一串可執行代碼傳遞給'setTimeout',但不應該這樣做。傳遞一個函數。 – SLaks 2011-04-13 21:31:51

+0

@Slaks好吧。 – Eliasdx 2011-04-13 21:32:27

回答

1
var ID = $(this).attr("id"); 

在您所提供$(this)上下文將解析爲空集。因此,您稍後檢查if(ID)將始終是錯誤的。

你應該通過一個實際的選擇器$()來選擇你想要得到的dom元素的ID。

0

嘗試刪除:

return false;

還你的setInterval每10000毫秒等於10秒運行。