首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么jQuery让我的页面在点击后跳回顶部?

为什么jQuery让我的页面在点击后跳回顶部?
EN

Stack Overflow用户
提问于 2013-11-27 16:22:42
回答 5查看 8.3K关注 0票数 6

关于jQuery,我有一个一般性的问题。

我创建了几个jQuery按钮,但问题是,当您在页面向下滚动一半,按下按钮时,页面会跳回顶部,而不是停留在按钮所在的中间?

您如何才能阻止这种情况发生,因为它是令用户沮丧的??

有什么特别的原因吗?

jsFiddle实例

代码语言:javascript
复制
$(".comment-here").click(function() {
   $(".comment-form").slideToggle('slow');
});

$(".main-btn.orange").click(function(){
   $(".comment-form").slideUp('slow');
});
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-11-27 16:25:07

你不能阻止默认事件。由于单击锚标记,#的默认事件只是跳到文档的顶部。

为防止这种情况发生:

将事件传递到函数中,并使用preventDefault();

代码语言:javascript
复制
$(".comment-here").click(function(e){
    e.preventDefault();
    $(".comment-form").slideToggle('slow');
})

$(".main-btn.orange").click(function(e){
    e.preventDefault();
    $(".comment-form").slideUp('slow');
})

您也可以使用return false;,它不仅仅是防止默认事件,它还将阻止事件bubblingparent元素。

票数 18
EN

Stack Overflow用户

发布于 2013-11-27 16:24:31

return false;添加到<a class="comment-here">的单击处理程序中。

本质上不是jQuery,而是默认的浏览器行为导致了这一点:单击一个链接,它必须导航到它的href,即."#",即本页。因此,我们回到这一页(顶部)。

票数 2
EN

Stack Overflow用户

发布于 2013-11-27 16:25:19

防止锚标记的默认行为:

代码语言:javascript
复制
$(".comment-here").click(function(e){
    e.preventDefault();
    //....
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20247721

复制
相关文章

相似问题

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