变量没有传递给jQuery滚动函数

时间:2016-03-10 16:33:33

标签: 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);
    })

锚点链接存在于页面的各个部分,警报给我提供了我需要的正确ID,但无论我点击哪个按钮,页面只会滚动一点点。不知道我在这里失踪了什么。

2 个答案:

答案 0 :(得分:1)

您正在将滚动的目标设置为刚刚单击的元素。如果要滚动到链接指向的元素,则需要使用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);
})

答案 1 :(得分:0)

如果您想要该用户,请单击.page-code或.opening OR .button元素,然后在它们之间添加逗号。