28

可能重复:
当点击触发 javascript 的链接时,如何阻止网页滚动到顶部?

我正在使用 jquery 的滑动切换来显示/隐藏 div。控制滑动的元素是一个文本链接(<\a> 内的一些文本),它具有 href="#",因此它看起来像一个链接(下划线,光标更改)。

问题是当点击链接时,除了滑动效果外,页面还会滚动到顶部。

我尝试用 href="" 替换 href="#" 但这会禁用 div 显示/隐藏效果。我想我可以添加到标签 Name="somename" 然后将 href 设置为 href="#somename" 但我宁愿不使用这样的技巧。

为什么 href="#" 将页面滚动到顶部?

任何想法将不胜感激

4

4 回答 4

76

几个选项:

  1. 放在return false;你的点击处理程序的底部,href 不会被遵循。
  2. 将href更改为javascript:void(0);
  3. 在您的处理程序中调用preventDefault事件:

    function( e ) {
      e.preventDefault();
      // your event handling code
    }
    
于 2010-01-07T23:02:57.483 回答
5

您需要添加return false;到您的点击处理程序。
这将阻止浏览器执行单击的默认操作。

于 2010-01-07T23:02:38.410 回答
2

return false或者event.preventDefault()是您在单击事件处理程序中需要的,以防止发生默认操作。<a>带有hrefof的 元素#会导致浏览器视口跳转到页面顶部作为默认操作

于 2010-01-07T23:12:02.057 回答
1

其他人已经给了你解决方案。但要具体回答您的问题,#请参考当前页面。由于标签的解释是将标签的顶部显示在视图中,因此单击标签会将#您滚动到当前页面的顶部。

于 2010-01-07T23:08:20.210 回答