javascript - 变量未传递到 jQuery 滚动函数中

标签 javascript jquery onclick scrolltop

有人可以帮助我理解为什么这不起作用:

   jQuery(".page-code .opening .button").click(function(event){
        event.preventDefault();
        var id = "#" + event.target.id;
        alert(id);
        jQuery('html, body').animate({
            scrollTop: jQuery(id).offset().top
        }, 500);
    })

anchor 链接存在于页面的各个部分,警报为我提供了我需要的正确 ID,但无论我单击哪个按钮,页面都只会滚动一点点。不确定我在这里缺少什么。

最佳答案

您将滚动的目标设置为刚刚单击的元素。如果你想滚动到链接指向的元素,你需要使用 href 属性(假设你的按钮是 a 标签):

jQuery(".page-code .opening .button").click(function(event){
    event.preventDefault();
    var id = "#" + jQuery(this).attr('href');
    alert(id);
    jQuery('html, body').animate({
        scrollTop: jQuery('body').offset().top
    }, 500);
})

关于javascript - 变量未传递到 jQuery 滚动函数中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35922130/

相关文章:

javascript - 从两个不同的文件加载并应用相同的 css 类到两个不同的元素

javascript - 如何设置 li 的 using value of clicked li?

javascript - 如何在 javascript 中为对象实现 onclick?

android - 在布局 xml 中使用 onClick 属性会导致 Android 对话框中出现 NoSuchMethodException

javascript - 当从外部分配值时,更改事件不适用于文本框

c# - JavaScript 看不到声明的变量?

javascript - 在运行时在 mvc 中将 css 类应用于菜单项

javascript - 只允许ajax上传图片

javascript - 使用jquery同时更改情侣网站上的文本字符串

javascript - 关于网站命名空间设置和页面特定对象等的建议