Javascript 如何命名jQuery函数以创建浏览器';什么是后退按钮?
我正在尝试为ajaxyfy编写一个函数。通过一个网站,除了一个后退按钮的函数外,一切都很完美 这就是我现在所拥有的: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
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;
};