Javascript 如何命名jQuery函数以创建浏览器';什么是后退按钮?

Javascript 如何命名jQuery函数以创建浏览器';什么是后退按钮?,javascript,jquery,Javascript,Jquery,我正在尝试为ajaxyfy编写一个函数。通过一个网站,除了一个后退按钮的函数外,一切都很完美 这就是我现在所拥有的: function loading() { if (typeof history.pushState !== "undefined") { var historyCount = 0; $('.menu-item, .logo').on('click','a',function(e){ e.preventDefault

我正在尝试为ajaxyfy编写一个函数。通过一个网站,除了一个后退按钮的函数外,一切都很完美

这就是我现在所拥有的:

function loading() {
    if (typeof history.pushState !== "undefined") {
        var historyCount = 0;

        $('.menu-item, .logo').on('click','a',function(e){
            e.preventDefault();
            $(this).data('clicked', true);
            if ($(this).is('.logo a')) {
            var homepage = $(this).attr('href');
                function1(homepage);
                history.pushState(null, null, homepage);
            }
        else if ($(this).is('.projects a')) {
                var projects = $(this).attr('href');
                function2(projects);
                history.pushState(null, null, projects);    
        }
        else {
                var pages = $(this).attr('href');
                function3(pages);
                history.pushState(null, null, pages);
        }

        });
        window.onpopstate = function(){
            if(historyCount) {
                goTo(document.location);
            }
            historyCount = historyCount+1;
        };
    }
}


function function1(homepage) {
    $.ajax({
        url: homepage,
        success: function(data) {
           $('.container_right_wrapper').hide('slide', {direction: 'left'}, 300, function(){
                $(this).html(data).show('slide', {direction: 'right'}, 300);
                console.log('home');
            });
        }
    });
}


function function2(projects) {
    $.ajax({
        url: projects,
        success: function(data) {
           $('.container_right_wrapper').hide('slide', {direction: 'left'}, 300, function(){
                $(this).html(data).show('slide', {direction: 'right'}, 300);
                console.log('projects');
            });
        }
    });
}


function function3(pages) {
    $.ajax({
        url: pages,
        success: function(data) {
           $('.container_right_wrapper').hide('slide', {direction: 'left'}, 300, function(){
                $(this).html(data).show('slide', {direction: 'right'}, 300);
                console.log('page');
            });
        }
    });
}
这是一个问题

 window.onpopstate = function(){
        if(historyCount) {
            goTo(document.location);
        }
        historyCount = historyCount+1;
    };
如果我离开转到它根本不起作用,如果我输入任何其他函数的名称,即函数1,它只对函数1起作用。无论触发了哪种功能,如何使其适用于所有三种功能

编辑

我真正关心的是功能:

 window.onpopstate = function(){
        if(historyCount) {
            goTo(document.location);
        }
        historyCount = historyCount+1;
    };

可以清楚地看到,它的名称是goTo(因为它主要与名为goTo(href)的函数相关)。在if条件标记中,我调用函数:function1、function2、function3,它们取代了先前存在的函数goTo(href)。当我把函数分成三个独立的函数时,在window.popstate上面。。。函数停止工作。我需要有三个不同的功能,因为我需要三个不同的事情发生时,点击不同的菜单按钮。我可以用function1或function2…等替换goTo,但是back按钮只适用于这三个函数中的一个。我希望它对所有人都有效

嗯,我设法自己做了每件事。我深入研究了HTML5 push.state,并做了以下更改:

我变了

history.pushState(null, null, homepage);
致:

我对另外两个push.state函数做了类似的更改。然后我换了

window.onpopstate = function(){
  if(historyCount) {
    goTo(document.location);
  }
historyCount = historyCount+1;
};
与:


是什么从push.state中提取了三个函数中的每一个函数的名称,正因为如此,每次点击浏览器的后退按钮,都会执行所需的函数。

如果您只是想知道如何正确编码,那就太好了。如果你想要一个“后退”按钮,请查看,它可以极大地简化事情。如果你想要浏览器后退按钮这样的功能,那么如果他的网站是“ajaxified”,你可以编写@Pramod,
javascript:history.go(-1)
会把一切搞砸。他正在寻找一个函数来获取ajax接收到的以前的内容。我已经有了一个函数,但我只想把它调整到上面的一个例子。请参见编辑。
window.onpopstate = function(){
  if(historyCount) {
    goTo(document.location);
  }
historyCount = historyCount+1;
};
window.onpopstate = function(){
  if(historyCount) {
  var JSONattr = (JSON.stringify(event.state).replace(/\"/g, ""));
    window[JSONattr](document.location);
  }
historyCount = historyCount+1;
};