在jquery ajax调用上实现“后退按钮”

时间:2011-06-09 04:12:08

标签: jquery ajax html5 back-button browser-history

我正在尝试在这个完整的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>    

ajax调用:

     $(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 个答案:

答案 0 :(得分:1)

我猜你在使用历史插件时可能没有初始化它。初始化时,会向其传递一个处理哈希更改的回调,以便您可以再次加载内容。所以,例如,而不是做这样的事情:

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