1

我有 3 个链接,2 个带有 pushstate 数据,1 个没有。用户+标签链接有数据,主题没有。如果我单击用户然后主题然后返回或标记然后主题然后返回它完美。如果我点击用户然后标签然后点击返回它只会加载最后一个推送状态(标签)。如果我点击标签然后用户然后返回它只是重用用户pushstate。如果我去标签 -> 用户 -> 主题,返回将转到用户,再次返回也将是用户??

$('#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/'); })
 });
4

1 回答 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(); };
});
于 2013-10-19T20:38:41.883 回答