2015-01-14 4 views
0

Я использую следующий скрипт с JQuery, чтобы переход к выцветанию при навигации между страницами:Jquery страница перехода делает предыдущую страницу пустой

$(document).ready(function() { 
    $("body").css("display", "none"); 
    $("body").fadeIn(200); 
    $("a").click(function(event){ 
     event.preventDefault(); 
     linkLocation = this.href; 
     $("body").fadeOut(200, redirectPage); 
    }); 
    function redirectPage() { 
     window.location = linkLocation; 
    } 
}); 

Он отлично работает, когда только с помощью ссылки для перехода между страницами, но когда используя кнопку «Назад» в браузере, возвращаемая страница пуста.

Как я могу заставить страницы отображаться правильно при навигации по ним с помощью кнопки «Назад»?

+0

Как насчет использования делегата, то есть .on ('click', function() {}) – user86745458

ответ

0

Используя кнопку «Назад», вы вернетесь в состояние предыдущей страницы прямо перед тем, как покинуть ее (в этом случае полностью исчезли), по крайней мере, так я ее понимаю. Не стесняйтесь исправить меня, если я ошибаюсь.

В любом случае, я думаю, перекраску DOM будет решить вашу проблему (взятую из Coderwall):

$.fn.redraw = function(){ 
    $(document).each(function(){ 
     var redraw = this.offsetHeight; 
    }); 
}; 

И вызвать функцию: $(document).redraw();

+0

Извините, существует '$ (document) .ready()' Я забыл его включить. Обновлен вопрос, спасибо. – jla

+0

@jla Ах, ок. Я изменил свой ответ на то, что, по-моему, может быть проблемой. –

+0

Перекраска работала как сон. Я также устанавливаю пустую функцию для вызова в window.onunload, чтобы убедиться, что скрипт запущен. Хорошо работает сейчас, приветствует :) – jla

0

Как насчет попробовать использовать делегат

$("a").on('click', function(event){ 
    event.preventDefault(); 
    linkLocation = this.href; 
    $("body").fadeOut(200, redirectPage); 
}); 
Смежные вопросы