如何阻止页面在单击链接后跳转到顶部
How to stop a page from jumping to the top after clicking link
我有一个过滤器,当您尝试更改体验级别时,页面会转到最顶部。 我的代码如下所示:
视觉:https://i.stack.imgur.com/CZ3Y6.jpg
<ul class="SecondNavigation">
<li>
<nav class="CategoriesNaviation">
<h3>Experience Filter</h3>
<ul>
<li>
<a href="/">
<i class="fa fa-list fa-fw fa-2x"></i>
<span>No Filter</span>
</a>
</li>
<li class="Selected">
<a href="/Beginner/">
<i class="fa fa-list fa-fw fa-2x"></i>
<span>Beginner</span>
</a>
</li>
<li>
<a href="/Intermediate/">
<i class="fa fa-list fa-fw fa-2x"></i>
<span>Intermediate</span>
</a>
</li>
<li>
<a href="/Advance/">
<i class="fa fa-list fa-fw fa-2x"></i>
<span>Advance</span>
</a>
</li>
</ul>
</nav>
</li>
问:有没有办法在用户单击锚点后禁止页面移动到顶部?
您可以使用:
-
Event.preventDefault()
或 -
return false
两者都会阻止内部锚链接的默认行为导航到页面顶部。示例用法,如之前在 SO 上演示的那样:
var links = document.querySelectorAll("a"),
pd = function(e) {
e.preventDefault ? e.preventDefault() : e.returnValue = false;
};
links.addEventListener('click', pd, false);
如果你使用的是jQuery,你可以这样做:
var links = $('a');
links.click(function(e) {
e.preventDefault(); // Can be used anywhere
});
需要注意的是,如果您选择使用 return false
,它必须位于函数的最后一行,否则它将停止执行所有下游代码:
var links = $('a');
links.click(function() {
// Your code here
// ...
return false; // Must be on the last line
});
也许睡前阅读?
- 'return false;'和'e.preventDefault();'之间的区别
- 何时以及为什么在javascript中"返回false"?
相关文章:
- 阻止在单击链接后转到页面顶部
- 如何使用嵌套的 React 组件从“链接页面”的顶部开始
- 同一域链接正在顶部iFrame中加载,而不是在整个页面上加载
- 轨道:涡轮链接回到页面顶部
- Javascript-点击时阻止JS链接滚动回顶部
- 当外部链接打开Tab时,页面滚动到顶部也固定了导航栏
- 试图在CSS中以顶部标题居中链接,但不会移动
- 防止点击Sennajs中的链接跳到页面顶部
- 为什么当我滚动到我的页面顶部并单击附加表单的链接时,它会向下滚动我
- HTML5 中图像顶部的超链接文本
- 如何阻止页面在单击链接后跳转到顶部
- 包含动态内容的较长页面上的返回顶部链接
- 基础6:单击链接时隐藏顶部栏
- Jquery 对话框滚动到一个链接,如何将其保持在顶部
- CKEDITOR在编辑链接后跳到顶部
- 返回顶部链接隐藏在文本之下
- 出现,消失的“滚动到顶部”链接与jQuery和CSS
- 下行链接更改为滚动上的回到顶部链接
- 当用户滚动时,滚动链接更改为顶部链接
- 滚动回顶部链接是可见的第一次加载