未捕获的TypeError:无法读取属性' top'两页之间未定义,平滑滚动的内容

时间:2017-11-17 02:57:44

标签: javascript jquery smooth-scrolling

我有一个导航,我已将其设置为滚动到pageA和pageB上的元素。在主页上,如果我单击pageA的下拉菜单,它会成功滚动到该页面上的任何元素。但是,当我单击pageB的下拉列表时,它会出现此错误: 未捕获的TypeError:无法读取属性' top'未定义的 但是当我在主页上点击pageB下拉菜单时,它会成功滚动到我点击的任何链接。这是我的代码:

$(document).ready(function(){
    $("a").on('click', function(e){
        if(this.hash !== "") {
            e.preventDefault();

            var hash = this.hash;

            $('html, body').animate({
                scrollTop: $(hash).offset().top
            }, 800, function(){
                window.location.hash = hash;
            });
        }
    });
});

为什么我收到错误?如何在两个页面之间设置菜单?

要澄清: 所有菜单选项仅在主页上起作用,但在尝试从pageA#anchor到pageB#anchor时出错,反之亦然。但是,如果我在pageB#anchor上,我点击pageA链接,我就可以访问该页面。当我尝试单击转到pageA#anchor的下拉链接时出现问题。但这在主页上运行良好。

0 个答案:

没有答案