1

我在我的网站上添加了一个简单的投票功能。出于某种原因,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);
      }
    }
  });

}
4

2 回答 2

4

您的标签中是否有空的“href”或井号,例如

<a href="#" onclick="action();">vote me up</a>?

如果是这种情况,则井号是向上滚动回顶部的内容。你应该改用

<a href="javascript:void(0);" onclick="action();">vote me up</a>

或者有一个事件处理程序返回 false 作为默认操作。

于 2012-10-02T17:32:53.313 回答
2

您可以按照@lkrups 所说的去做,或者 在函数末尾添加event.preventDefault();甚至添加应该可以工作。return false;

于 2012-10-02T17:34:28.580 回答