Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
实施";“后退按钮”;关于jqueryajax调用_Jquery_Ajax_Html_Back Button_Browser History - Fatal编程技术网

实施";“后退按钮”;关于jqueryajax调用

实施";“后退按钮”;关于jqueryajax调用,jquery,ajax,html,back-button,browser-history,Jquery,Ajax,Html,Back Button,Browser History,我试图在这个完整的ajax网站上实现back按钮。。我尝试了jquery历史插件,但我肯定我弄错了什么,因为散列显示正常,但后退按钮不会加载原始内容 我的菜单是这样的: <div id="nav" class="ajaxload menu"> <ul> <li><a href="home.aspx">Home</a></li>

我试图在这个完整的ajax网站上实现back按钮。。我尝试了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;
            });
        });
$(函数(){
var$content=$(“#content”);
$('.ajaxload li a')。单击(函数(){
$content.html(“”);
var url=$(this.attr('href');
$.get(url、函数(数据){
$content.hide().html(data.fadeIn(“慢”,function(){$(“#加载程序”).fadeOut(“快”)});
});
返回false;
});
});

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

$('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;
});
你必须这样做:

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

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

$('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;
});
你必须这样做:

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

你确定这段代码可以和我的代码一起使用吗?我似乎也不能使它工作。。(ajax调用不起作用)@Vitor:我不明白为什么不行。你在用什么代码?我的菜单应该是什么样子?我必须把杂烩放进去吗?或者这是插件的工作?@Vitor:插件应该会这样做。把散列放在菜单中也会起作用,但是搜索引擎不会理解。你确定这段代码可以和我的代码一起工作吗?我似乎也不能使它工作。。(ajax调用不起作用)@Vitor:我不明白为什么不行。你在用什么代码?我的菜单应该是什么样子?我必须把杂烩放进去吗?或者这是插件的工作?@Vitor:插件应该会这样做。在菜单中添加哈希也可以,但搜索引擎无法理解。