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();
}
});
});
});
答案 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元素,例如跨度。