我正在为我的 ajax hashchange 事件和历史状态使用 jquery BBQ 插件。我的问题是它不保存滚动位置,所以当我使用后退按钮时,滚动条没有定位在 hashchange 之前的位置,而是与按下后退按钮之前相同的像素位置。我已经看到这对许多人来说都是一个问题,有些人提到使用 cookie,但我不知道如何使用 BBQ 插件,因此感谢所有帮助。理想情况下,我希望这样当页面正常导航到时,滚动条位于顶部,但是当按下后退按钮时,滚动条位于该页面上的位置。这是我的代码:
$(function(){
var cache = {
'': $('.content')
};
$(window).bind( 'hashchange', function(e) {
var url = $.param.fragment();
var scroll = $('#wrapper').scrollTop();
$( '.contentarea' ).children( ':visible' ).hide();
if ( cache[ url ] ) {
cache[ url ].show();
} else {
$( '.content-loading' ).show();
cache[ url ] = $( '<div class="pageURL"/>' )
.appendTo( '.contentarea' )
.load( url, function(){
$( '.content-loading' ).hide();
});
}
})
$(window).trigger( 'hashchange' );
$('#btn-back').click(function(){
parent.history.back();
return false;
});
});
谢谢。