链接href =“#”在与jquery slidetoggle 一起使用时滚动页面到顶部

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

我正在使用jquery的slidetoggle来显示/隐藏div。 控制滑动的元素是文本链接(中的一些文本),其中包含href =“#”,因此它看起来像一个链接(下划线,光标更改)。

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

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

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

任何想法都将受到高度赞赏

几个选项:

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

     function( e ) { e.preventDefault(); // your event handling code } 

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

其他人给了你解决方案。 但要专门回答您的问题, #指的是当前页面。 由于标签的解释是将标签的顶部置于视图中,因此单击#标签会将您滚动到当前页面的顶部。

return falseevent.preventDefault()是您在单击事件处理程序中需要的,以防止发生默认操作。 href#元素将导致浏览器视口跳转到页面顶部作为默认操作