AJAX在Chrome中多次发帖

时间:2010-12-12 23:05:46

标签: php javascript jquery ajax google-chrome

http://cl.ly/2D221O0J33421Y1v2V0Q

有什么方法可以避免这种情况吗?

在Firefox等中完美运行

votes.php: http://pastie.org/1369778

jQuery(function(){
jQuery("a.vote_down").click(function(){
 //get the id
 the_id = $(this).attr('id');

 // show the spinner
 $(this).parent().html("<img src='images/spinner.gif'/>");

 //the main ajax request
  $.ajax({
   type: "POST",
   data: "action=vote_down&id="+$(this).attr("id"),
   url: "/votes.php",
   success: function(msg)
   {
    $("span#votes_count"+the_id).fadeOut();
    $("span#votes_count"+the_id).html(msg);
    $("span#votes_count"+the_id).fadeIn(1000);
    $("span#vote_buttons"+the_id).remove();
   }
  });
 });
});

3 个答案:

答案 0 :(得分:2)

您是否尝试过点击处理程序return false;(当然放在功能的末尾)?或者,尝试在名为e的处理程序中加入一个参数,并添加e.stopPropagation();

最重要的是,您希望在处理完点击事件后阻止点击事件冒泡。

答案 1 :(得分:1)

如果是href事件,请在代码末尾执行以下操作

event.preventDefault(); //这是更好的做法

http://api.jquery.com/event.preventDefault/

return false;

答案 2 :(得分:0)

您可以尝试使用“委托”方法而不是“点击”快捷方式。 “$ .delegate”通过将事件分配给元素的上下文而不是窗口对象来防止事件“冒泡”。

此外,如果您使用带有空“href”参数的“锚点”,则可以尝试使用其他HTML元素,例如跨度。