2013-03-13 115 views
0

以下是我想用AJAX完成的事情。我从来没有使用过AJAX,所以我甚至不确定我想要完成的是否正确使用。我试图加快网站用户可以删除收件箱中累积的某些邮件的速度。在我的网站以前的版本中,每次删除可能变得非常慢的消息时,页面都必须刷新。为了解决这个问题,我决定不用在用户按下“删除”按钮时触发表单,而是在客户端设置jquery来清除消息html,然后发送一个异步POST请求,告诉服务器从数据库。麻烦制作AJAX请求

$(document).ready(function() { 
    $(".deleteButton").click(function() { 
      var id = $(this).attr('id'); 
      $("tr#"+id).slideUp("fast"); 
      $.ajax({type: "post", 
       url: "/message", 
       data: {"delete_mes": id}}); 
    }); 
}); 

这几乎奏效。每当我点击删除消息消失,当我重新加载页面它仍然消失,显示服务器已成功删除该消息。但是,在重新加载页面之前删除多条消息时,除第一条消息之外的所有消息都会重新出现。

希望在ajax有更多经验的人会知道什么是错的。我的服务器使用Google App Engine进行设置。谢谢!

+1

它看起来好像你有重复的ID,我会建议先解决这个问题。 – 2013-03-13 18:22:39

+0

难道只是删除多个而不是不够? – Harrison 2013-03-13 18:54:05

+0

我不知道,因为使用无效的html可能有*不可预知的结果。 – 2013-03-13 18:57:03

回答

0

首先:您不应该在页面上多次使用相同的ID。

我已为您制定了解决方案,请检查此jsFiddle

$(document).ready(function() { 
    $(".deleteButton").click(function() { 
     var parent = $(this).parent('tr'); 
     var id = parent.attr('id'); 
     parent.slideUp("fast"); 
     // your ajax 
    }); 
}); 
+0

在设法尝试您的解决方案之前,问题就解决了,不过谢谢! – Harrison 2013-03-13 19:49:47