2013-02-16 67 views
0

這裏是源:jQuery的刪除()是不工作

function updateMsg() { 
    $.post("AjaxChatServer.jsp",{ time: timestamp }, function(xml) { 
     alert("1"); 
     $("#loading").remove(); 
     addMessages(xml); 
    }); 
    setTimeout('updateMsg()', 4000); 
} 

alert功能不工作,但是function(xml)以外,alert正在工作。
jQuery源碼有問題嗎?

+1

這意味着ü沒有得到任何Ajax響應。檢查。 'AjaxChatServer.jsp' – mithunsatheesh 2013-02-16 11:30:33

回答

2

如果您的成功回調沒有觸發,很可能是因爲請求失敗。請參閱.post()文檔。我建議使用更全功能的.ajax()來更好地控制情況。

function updateMsg() { 
    // You must define timestamp 
    var timestamp = $.now(); 
    $.ajax({ 
     url: "AjaxChatServer.jsp", 
     type: "POST", 
     data: { 
      time: timestamp 
     }, 
     success: function (xml, textStatus, jqXHR) { 
      $("#loading").remove(); 
      addMessages(xml); 
     }, 
     error: function (jqXHR, textStatus, errorThrown) { 
      // Handle error 
      alert(textStatus); 
     } 
    }); 
} 

setTimeout(updateMsg, 4000); 
+1

用於爲我顯示'$ .now()'的文件:) – 2013-02-16 11:55:51

3

變化:

setTimeout('updateMsg()', 4000); 

到:

setTimeout(updateMsg, 4000); 

還要注意的是,在發佈代碼,timestampundefined,你應該把setTimeout外的函數的範圍。

+1

這是一個很好的建議,但'updateMsg()'也可以正常工作。 – JJJ 2013-02-16 11:34:07

0

我想你可能有問題的ajax - 錯誤的地方。 嘗試在帖子函數的末尾添加.error.success以查看錯誤。

function updateMsg() { 

$.post("AjaxChatServer.jsp",{ time: timestamp }, function(xml) { 
    alert("1"); 
    $("#loading").remove(); 

addMessages(xml); 
}) .error(function(){ 
     alert("error"); 
    }) .success (function(){ 
     alert("error"); 
    ); 
0

你的變量 「時間戳」 聲明?

嘗試:

function updateMsg() { 
    var date = new Date(), timestamp = date.getTime(); 

    $.post("AjaxChatServer.jsp",{ time: timestamp }, function(xml) { 
     alert("1"); 
     $("#loading").remove(); 

     addMessages(xml); 
    }); 
}