pushstate работает только один раз

0

У меня есть 3 ссылки, 2 без данных pushstate 1. Ссылка "Пользователи + теги" содержит данные, темы не входят. Если я нажму кнопку "Пользователи", затем "Темы", то "Назад" или "Теги", затем "Темы", а затем вернитесь, он отлично работает если я нажму кнопку "Пользователи", то теги, а затем нажмите "назад", он загрузит только последнюю pushstate (теги). если я нажимаю теги, тогда пользователи затем возвращают его, просто повторно используют pushstate для пользователей. если я иду теги → пользователи → темы, назад будут goto пользователи, снова будут также пользователи?

$('#changetousers').click(function () {
   $('#loadingAjaxs').show(); $('#flubestext').hide();
   $('#contentwrap').load('@Url.Action("FollowingUsersDetail", "Following", new {@ajax = "yes"})', function () { $('#loadingAjaxs').hide(); $('#flubestext').show(); window.history.pushState({ "page": "followingusers" }, 'title1', '/users/'); window.onpopstate = function (e) { document.getElementById('changetousers').click(); };
   })
});

$('#changetotags').click(function () {
   $('#loadingAjaxs').show(); $('#flubestext').hide();
   $('#contentwrap').load('@Url.Action("FollowingTagsDetail", "Following", new {@ajax = "yes"})', function () { $('#loadingAjaxs').hide(); $('#flubestext').show(); window.history.pushState({ "page": "followingtags" }, 'title2', '/tags/'); window.onpopstate = function (e) { document.getElementById('changetotags').click(); }; })
});

$('#changetofavorites').click(function () {
    $('#loadingAjaxs').show(); $('#flubestext').hide();
    $('#contentwrap').load('@Url.Action("FollowingTopicsDetail", "Following", new {@ajax = "yes"})', function () { $('#loadingAjaxs').hide(); $('#flubestext').show(); window.history.pushState(null, 'title', '/favorites/'); })
 });
Теги:
asp.net-mvc
pushstate

1 ответ

1

Я думаю, что вы вызываете pushState даже пользователь щелкает назад, поэтому вы не можете перейти в предыдущее состояние. Это должно работать:

function loadUserDetails() {
    $('#loadingAjaxs').show();
    $('#flubestext').hide();
    $('#contentwrap').load(
        '@Url.Action("FollowingUsersDetail", "Following", new {@ajax = "yes"})', 
        function () { 
            $('#loadingAjaxs').hide(); 
            $('#flubestext').show();
        });
}
$('#changetousers').click(function () {
    loadUserDetails();
    window.history.pushState({ "page": "followingusers" }, 'title1', '/users/');
    window.onpopstate = function (e) { loadUserDetails(); };
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню