Я использовал плагин jQuery History только для такого рода вещей, и он работал очень хорошо для меня.
На каждую "страницу" ссылается хеш в вашемURL.Таким образом, «изменение страниц» не обновляет страницу, но сохраняет состояние страницы в истории и позволяет создавать закладки.
РЕДАКТИРОВАТЬ Я более подробно остановлюсь на примере, приведенном в ссылкеприменить больше для вашей ситуации.
function loadTable(hash)
{
if(hash == "ChangeA")
createTableA();
if(hash == "ChangeB")
createTableB();
}
$(document).ready(function() {
$.history.init(loadTable);
$("input[id^='Change']").click(function(){
$.history.load(this.attr('value'));
return false;
});
});
То, что делает приведенный выше код, устанавливает обработчик событий для всех тегов input
, чей id
начинается с «Изменить», так что при нажатии этих кнопок loadTableназывается.Если вы измените свои кнопки, чтобы они выглядели так:
<input type="button" id="ChangeA" value="ChangeA">
<input type="button" id="ChangeB" value="ChangeB">
нажатие кнопки A поместит это http://www.example.com/yourpage.html#ChangeA
в адресную строку и загрузит таблицу A, также добавив это изменение таблицы в историю браузера.