我有一个目前通过ajax / pushstate提取数据的脚本;它运作得相对较好,但肯定存在一些我遇到的问题。首先,这是我目前正在使用的代码:
function goTo(href) {
$.ajax({
url: href,
success: function(data) {
$('#wrapper').fadeOut('fast', function(){
$(this).html(data).fadeTo('fast', 1);
$(".scroll").niceScroll({cursorcolor:"#f33d39", cursorwidth: "10px", cursorborder: "none", cursorborderradius: "0px", fixed: true});
});
// update the page title
var title = $('#page-right').find('h1').text();
$('head').find('title').text(title);
}
});
}
if (typeof history.pushState !== "undefined") {
var historyCount = 0;
$('a[href*="rage.rage-wrestling.com"]').live('click',function(){
var href = $(this).attr('href');
$('#page-load').fadeIn( 'slow' );
goTo(href);
$('#page-load').delay(2000).fadeOut( 'slow' );
history.pushState(null, null, href);
return false;
});
window.onpopstate = function(){
if(historyCount) {
goTo(document.location);
}
historyCount = historyCount+1;
};
}
现在,代码会提取我需要的数据并显示它,但我遇到了几个问题,我试图解决这个问题无济于事。它们如下:
后退按钮在浏览器上不起作用。
页面标题总是落后一页;即如果我在一个名为Cain的页面上并单击一个链接转到其他,当页面加载其他时它会在浏览器上显示该页面的标题为Cain。好像失败了。这很奇怪。
我似乎无法找到一个调用函数ragecharts()的好方法;在这;我把它放在ajax加载后,我有nicescroll refiring以便工作,但这只会破坏代码。我也试过popstate函数,但这也行不通。我需要能够重新调用此函数,因为当数据加载到页面中并且正在使用该函数时,它不会正确显示数据。
加载功能;我很熟悉它,可以这么说,在将ajax作为叠加层拉出之前调用#page-load div并在之后设置延迟,但我真正想要的是覆盖层只有淡出一次ALL数据已加载到ajax调用中。在叠加层淡出时,仍然需要加载大量图像,我希望它在完全加载之前保持不变。
这就是它。
我很难在可行的情况下拍摄这张照片,但是对于这些东西我只是一个新手,所以也许有些东西我没看错。
如果你能够提供帮助,请提前致谢。