Реализация «кнопки назад» на вызовах jquery ajax - PullRequest
1 голос
/ 09 июня 2011

Я пытаюсь реализовать кнопку возврата на этом полном веб-сайте ajax. Я пробовал плагин истории jquery, но я уверен, что что-то испортил, так как хеш отображается нормально, но кнопка назад не загружает исходный контент обратно. .

Вот как выглядит мое меню:

       <div id="nav" class="ajaxload menu">
            <ul>
                <li><a href="home.aspx">Home</a></li>
                <li><a href="about.aspx">About Us</a></li>
                <li><a href="contact.aspx">Contact</a></li>
            </ul>
        </div>    

А аякс звонит:

     $(function() {
            var $content = $('#content');
            $('.ajaxload li a').click(function() {

                $content.html('<div id="loader"></div>');

                var url = $(this).attr('href');
                $.get(url, function(data) {
                    $content.hide().html(data).fadeIn("slow", function() { $("#loader").fadeOut("fast") });
                });
                return false;
            });
        });

1 Ответ

1 голос
/ 09 июня 2011

Я предполагаю, что когда вы использовали плагин истории, вы, возможно, не инициализировали его.Когда вы инициализируете его, вы передаете ему функцию обратного вызова, которая обрабатывает изменения хэша, чтобы вы могли снова загрузить содержимое.Так, например, вместо того, чтобы делать что-то вроде этого:

$('a').click(function clickedLink() {
    var href=$(this).attr('href');
    $.history.load(href);
    doSomeAJAXRequest(href);
    return false;
});

Вы должны сделать что-то вроде этого:

$.history.init(function hashChanged(hash) {
    doSomeAJAXRequest(href);
});
$('a').click(function clickedLink() {
    var href=$(this).attr('href');
    $.history.load(href);
    return false;
});
...