首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >当单击触发JavaScript的链接时,如何阻止网页滚动到顶部?

当单击触发JavaScript的链接时,如何阻止网页滚动到顶部?
EN

Stack Overflow用户
提问于 2009-10-22 00:20:19
回答 12查看 171K关注 0票数 147

当我有一个连接了jQuery或JavaScript事件的链接时,例如:

代码语言:javascript
复制
<a href="#">My Link</a>

如何防止页面滚动到顶部?当我从锚点中删除href属性时,页面不会滚动到顶部,但是链接看起来并不是可点击的。

EN

回答 12

Stack Overflow用户

发布于 2009-10-22 02:27:54

一种简单的方法是利用以下代码:

代码语言:javascript
复制
<a href="javascript:void(0);">Link Title</a>

这种方法不会强制页面刷新,因此滚动条保持不变。此外,它还允许您以编程方式更改onclick事件,并使用jQuery处理客户端事件绑定。

由于这些原因,上述解决方案优于:

代码语言:javascript
复制
<a href="javascript:myClickHandler();">Link Title</a>
<a href="#" onclick="myClickHandler(); return false;">Link Title</a>

当且仅当myClickHandler方法不失败时,最后一个解决方案才能避免滚动跳转问题。

票数 33
EN

Stack Overflow用户

发布于 2017-06-14 23:38:48

您应该更改

代码语言:javascript
复制
<a href="#">My Link</a>

代码语言:javascript
复制
<a href="javascript:;">My Link</a>

这样,当单击链接时,页面不会滚动到顶部。这比使用href="#“然后阻止默认事件运行要干净。

关于this question的第一个回答,我有很好的理由这样做,比如如果被调用的函数抛出错误,return false;将不会执行,或者您可能将return false;添加到doSomething()函数中,然后忘记使用return doSomething();

票数 14
EN

Stack Overflow用户

发布于 2009-10-22 01:24:36

从您要调用的代码中返回false将会起作用,并且在许多情况下是首选方法,但您也可以这样做

代码语言:javascript
复制
<a href="javascript:;">Link Title</a>

当谈到搜索引擎优化,这真的取决于你的链接是用来做什么的。如果你打算实际使用它来链接到其他一些内容,那么我会同意,理想情况下,你会想要一些有意义的东西,但如果你是为了功能目的而使用该链接,可能就像Stack Overflow为post工具栏所做的那样(粗体、斜体、超链接等),那么它可能并不重要。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1601933

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档