我有一个网站,我使用 ajax 加载网站的每个页面,主要是在博客页面和作品集页面之间切换。在作品集页面上,我将 localScroll 与子导航中的链接一起使用。
如果作品集页面是加载的初始页面,这一切都可以正常工作。如果首先加载站点上的任何其他页面,然后我切换到作品集页面,localScroll 将不再工作。首先加载作品集页面,然后切换到另一个页面,这很好。
我已经向后工作,似乎只有在我使用 window.history.pushState (更改页面的 url)时才会出现问题。如果我删除它并保留其他所有内容,localScroll 将再次起作用。
我什至尝试将 window.history.pushState 添加到 localScroll 附带的 ajax 演示中,它也发生在那里。
window.history.pushState 是否有任何原因可能会破坏 localScroll,并且无论如何要让它再次工作?
我在下面包含了我的代码的精简版本。
$(document).ready(function(){
$('#nav-subnav').localScroll({
lazy: true,
target: scrolltarget
});
$(document.body).on('click', '#nav a', function() {
pageLoad(this);
return false;
});
});
function pageLoad(t){
//e.preventDefault();
var $link = $(t).prop('href');
if ($link != window.location.href) {
window.history.pushState({path:$link},'',$link);
$('#content').add('#nav-submenu').animate({opacity: 0},500, function() {
$.ajax({
url: $link,
success: function(content) {
var newTitle = $(content).filter('title').text();
document.title = newTitle;
$('#nav-subnav').html($(content).find('#nav-subnav .submenu'));
$('#content').html($(content).find('#content #wrapper'));
$('#content').add('#nav-subnav').animate({opacity: 1},500);
}
});
});
}
return false;
};
在此先感谢,
内森