我有一个灯箱覆盖,我正在使用下面取消浏览器窗口滚动“#”的href锚点。我有它的工作,所以它不会在初始点击时滚动窗口,但是关闭灯箱覆盖后,浏览器会滚动到顶部,#会附加到URL。
<a href="#" onclick="somefunction(); return false;">...
甚至是......
<a href="javascript:void(0)" onclick="somefunction(); return false;">...
链接位于可点击的图像上,onclick功能触发叠加层弹出。
Andy想法如何在退出叠加层时阻止浏览器滚动到顶部?
答案 0 :(得分:9)
我建议不要使用锚标记。如果您不想要HREF值,那么它实际上不是指向另一个页面的链接,因此可能不是真正的链接。如果网站必须无法访问javascript,那么您需要更多地考虑这个问题并提出一个解决方案,该解决方案将允许链接到实际内容的真实href值。
但是,如果您对这是一个需要JS的应用程序感到满意,那么您可以这样做:
<a href="javascript:;" onclick="somefunction(); return false;">
但是,再一次,这是你点击更新UI而不是去某个地方的东西,所以我只是把它变成DIV,给它一个onclick事件,并完成它。但一定要给div一个tabindex,以便它可以通过键盘访问。
答案 1 :(得分:6)
您应该避免使用#
href和javascript:
伪协议。
链接应始终指向有效资源。
如果您不能使用更合适的元素,例如button
(如您的示例所示),我会使用event.preventDefault()
取消默认行为。