JQuery scrollTop函数转到正确的位置,然后跳回页面顶部

JQuery scrollTop函数转到正确的位置,然后跳回页面顶部,jquery,scroll,click,scrolltop,Jquery,Scroll,Click,Scrolltop,我使用JQuery函数scrollTop在每个字母的单击函数中列出联系人号码。它会滚动到应该滚动的位置,然后立即滚动回顶部 下面是代码中函数的示例: $('.a').click(function(){ $('html, body').animate({scrollTop:$('#A').position().top}, 'slow'); }); 以下是我为其制作的JSFIDLE: 如果要将其添加到锚定标记,通常需要添加preventDefault()或return false取消导航

我使用JQuery函数
scrollTop
在每个字母的单击函数中列出联系人号码。它会滚动到应该滚动的位置,然后立即滚动回顶部

下面是代码中函数的示例:

$('.a').click(function(){
     $('html, body').animate({scrollTop:$('#A').position().top}, 'slow');
});
以下是我为其制作的JSFIDLE:

如果要将其添加到锚定标记,通常需要添加
preventDefault()
return false
取消导航事件

因此:

我还更新了您的示例,以使用jQuery1.8+中推荐的语法

编辑:正如@Karl Andre Gagnon指出的:

返回false work,因为它可以防止事件从 preventDefault阻止元素的默认操作。自从 点击一个跨度没有默认动作,它什么也不做

因此,第一个示例只有在您使用

您编写的“a”
span
如下:

<span class="a">A</spam>
A
由于这个输入错误,它没有关闭。这使得每次点击(任何字母)都是在冒泡后点击“a”

只要把“m”改为“n”,一切都会好起来的


那些该死的打字错误,把整个代码都弄乱了:)

啊!我试过e.preventDefault();但这不起作用,返回错误;尽管如此!谢谢Yeah返回false work,因为它防止事件冒泡,因为preventDefault阻止元素的默认操作。由于单击范围没有默认操作,因此不会执行任何操作@卡尔·安德烈·加格农(Karl AndréGagnon)在OP发表上述评论时,我也这么想。谢谢我将把答案扩大一点。
$('.a').on('click', function(e){
    $('html, body').animate({scrollTop:$('#A').position().top}, 'slow');
    return false;
});
<span class="a">A</spam>