防止页面加载时的默认哈希行为

bob*_*oap 13 jquery

我有一个带标签界面的页面.每个标签都有唯一的ID.我已经启用了指向该页面的链接,并在哈希之后附加了id,我现在正试图规避默认的浏览器行为,该行为在页面上元素的位置打开带有哈希的URL.

所以:

  • pageA链接到pageB,如下所示: <a href="pageB.php#Tab4">Go</a>
  • pageB打开,我的jQuery激活了正确的选项卡,但浏览器已向下滚动到<div id="Tab4">页面上的位置.

这正是我想要阻止的.

有任何想法吗?谢谢!

Ian*_*bee 46

没有办法阻止默认的哈希行为,但您可以更改哈希方案,以使#tag与页面上的任何ID不对应.在页面加载时,获取哈希值并附加一个常量(例如:)_hash,然后使用jQuery滚动到该值.

示例: http://mysite/page.php#tab4

page.php有 <div id="tab4_hash"></div>

在页面加载时,通过执行tab4+ 获取div_hash