返回false onclick锚点不能完全正常工作

时间:2011-04-13 05:07:33

标签: javascript html

我有一个灯箱覆盖,我正在使用下面取消浏览器窗口滚动“#”的href锚点。我有它的工作,所以它不会在初始点击时滚动窗口,但是关闭灯箱覆盖后,浏览器会滚动到顶部,#会附加到URL。

<a href="#" onclick="somefunction(); return false;">...

甚至是......

<a href="javascript:void(0)" onclick="somefunction(); return false;">...

链接位于可点击的图像上,onclick功能触发叠加层弹出。

Andy想法如何在退出叠加层时阻止浏览器滚动到顶部?

2 个答案:

答案 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()取消默认行为。