防止 href="#" 链接改变URL哈希值

60

我有一个已经利用URL中的哈希的网站,我不想改变它。当我使用Zurb Foundation并使用 href="#"来创建菜单项时,点击它会删除先前的哈希值。

如何覆盖这种行为?

更新:我认为最好保持使用 <a> 元素,因为如果我改变它,会影响绑定到该HTML元素的样式。在使用设计框架时,我总是喜欢保持默认约定而不是乱修改CSS属性。

谢谢。


我只是遵循Zurb Foundation文档,他们在菜单项链接中使用href="#"。 - Liron Harel
空着也是有效的。 - user2587132
你能粘贴一下你的菜单HTML吗?一个什么都不做的菜单有什么意义呢? - Max Hoffmann
它确实有每个<a>元素的onclick事件 - 我已经添加了它。 - Liron Harel
@user2587132 那是个好主意:它非常有效!在我的测试中使用 href="" 现在可以正常工作:不再需要更改 URL,而且链接样式看起来正确。 - Raymond Naseef
11个回答

0

我的解决方案有点相似,使用Javascript:

-> 替换

<a href=#foo class="ouvrir">Newsletter</a>

作者:

<a href="javascript://" class="ouvrir">Newsletter</a>

还有JavaScript代码:

<script>
    $('.ouvrir').click(function(event){
        window.location.href = "#foo";
        history.pushState('', document.title, window.location.pathname);
    });
</script>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接