【发布时间】:2015-11-14 12:27:37
【问题描述】:
我有一个 jquery 函数,可以删除 url 中的锚“#categorie”,以防止网站滚动到具有该 ID 的部分。 这在 Chrome 和 Safari 中完美运行。但是在 Firefox 中它没有,它确实有,但只是部分。
这是我点击的项目的html结构:
<div class="person kernteam abigael-verspoor">
<div class="person-img">
<a href="http://www.ludenstraining.nl/person1/#kernteam">
<img src="person1"/></a>
</div>
<div class="person-info">
<h3><a href="http://www.ludenstraining.nl/person1/#kernteam">Abigael Verspoor</a></h3>
<p>programmamanager / trainer / coach</p>
</div>
</div>
这是防止锚滚动发生的jquery代码:
// right away before the browser can start scrolling!
var hash = window.location.hash,
target = hash.replace('#', '');
// delete hash so the page won't scroll to it
window.location.hash = "";
我尝试通过设置一个超时功能来修复它,让窗口滚动回 0 顶部,但这也不起作用,至少不一致。
要真正看到它,请访问此链接:http://www.ludenstraining.nl/over-ons/
在 chrome 和 safari 中,它可以完美运行。在 Firefox 中,它一开始似乎有效,但仅适用于第一个选项卡“kernteam”。在第二个和第三个选项卡中,您会看到它向下滚动到该人连接到的类别选项卡。
感谢任何形式的帮助!
【问题讨论】:
-
如果你不想要它,你愿意和我们分享为什么它有哈希吗?
-
因为我将 url 的哈希值放入了我在页面上使用的值中。否则我当然会删除它。
-
所以使用数据属性:
<a href="...." data-team="kernteam" ....或更改为#prefix_kernteam,这样它就不会转到 id="kernteam" -
谢谢我明白了,你让我朝着正确的方向前进。放置前缀会破坏链接,但我找到了解决方案,将锚链接“#”替换为“?”。
标签: javascript jquery html