2013-02-16 40 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); 
    }); 
}