2011-04-13 8 views
1

누구나이 jQuery 아약스가 작동하지 않는 이유를 알 수 있습니까? 매 초마다 실행해야하지만 전혀 실행되지 않습니다.jQuery ajax is not working?

소스 코드 : 제거

<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

+4

@ 엘리야스 : 틀렸어. 실행 가능한 코드 문자열을'setTimeout'에 전달할 수는 있지만 그렇게해서는 안됩니다. 함수를 전달하십시오. – SLaks

+0

@Slaks 그럼. – Eliasdx

답변

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

제공된 문맥에서 $(this)은 빈 세트로 해석됩니다. 따라서 나중에 체크 if(ID)을 체크하면 항상 거짓이됩니다.

ID를 가져올 dom 요소를 선택하려면 $()에 실제 선택자를 전달해야합니다.

0

시도 :

return false;

은 또한 당신이 setInterval을 10 초 동일마다 10000 밀리 실행해야합니다.