Я использую плагин jQuery BBQ для моих событий ahax хэширования и состояний истории. Моя проблема заключается в том, что она не сохраняет положение прокрутки, поэтому, когда я использую кнопку «Назад», полоса прокрутки не расположена там, где она была до хэширования, а была той же позицией пикселя, что и до нажатия кнопки «Назад». Я видел, что это проблема для многих, и некоторые упоминают использование файлов cookie, но я понятия не имею, как это сделать с плагином BBQ, поэтому вся помощь приветствуется. В идеале мне бы хотелось, чтобы при навигации по обычной странице прокрутка вверху, но когда нажата кнопка «Назад», прокрутка расположена там, где она была на этой странице. Это мой код:Ajax сохранить позицию прокрутки div до hashchange (плагин 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;
});
});
Спасибо.
jQuery BBQ не собирается делать это за вас, так как он не передает никаких данных. Что нужно сделать, как это было предложено, использовать куки. Создание и использование файлов cookie удивительно просто; [Я нашел отличную статью, в которой суммируется все, что вам нужно знать] (http://jquery-howto.blogspot.com/2010/09/jquery-cookies-getsetdelete-plugin.html). Вам нужно будет закодировать свой собственный JS, чтобы определить, в какой позиции находится браузер, и как далеко назад в истории. Но вы можете сделать это, добавив ID на страницу и записывая это значение в файл cookie, затем сделав сравнение; если true, scrollTop (cookie_position). Глюк. – Ohgodwhy