我有一个导航,我已将其设置为滚动到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的下拉链接时出现问题。但这在主页上运行良好。