我在网站上添加了一个简单的投票功能。出于某种原因,ajax调用将窗口滚动重置为页面顶部。这对用户来说显然非常烦人,因为他们每次在帖子上投票时都必须从顶部开始滚动。
我似乎无法理解为什么会这样。有什么建议吗?
function vote_up(post_id)
{
//alert("Up: " + post_id);
$.ajax({
url: '<?php echo URL::base(); ?>voting_ajax.php?vote_up&post_id=' + post_id,
dataType: 'json',
success: function(data) {
if(data.result == 1)
{
$('#up_count_'+post_id).html(data.vote_up);
$('#down_count_'+post_id).html(data.vote_down);
}
if(data.msg != '')
{
$.msgbox(data.msg);
}
}
});
}
答案 0 :(得分:4)
您的标签中是否有空的'href'或井号,例如
<a href="#" onclick="action();">vote me up</a>
?
如果是这种情况,则哈希符号会向上滚动回到顶部。你应该使用
<a href="javascript:void(0);" onclick="action();">vote me up</a>
或者让事件处理程序返回false作为默认操作。
答案 1 :(得分:2)
您可以执行@lkrups所说的内容或添加event.preventDefault();
,甚至在功能结束时添加return false;
也应该有效。