2013-12-24 51 views
0
<script> 
$(function(){ 
    $("a[rel='tab']").click(function(e){ 
     e.preventDefault(); 

     pageurl = $(this).attr('href'); 

     $.ajax({url:pageurl+'&rel=tab',success: function(data){ 
      $('#right_column').html(data); 
     }}); 

     if(pageurl!=window.location){ 
      window.history.pushState({path:pageurl},'',pageurl);  
     } 
     return false; 
    }); 
}); 

/* the below code is to override back button to get the ajax content without reload*/ 
$(window).bind('popstate', function() { 
    $.ajax({url:location.pathname+'&rel=tab',success: function(data){ 
     $('#right_column').html(data); 
    }}); 
}); 
</script> 

我把這段代碼從演示中拉下來,然後修改它以適合我的特定項目;然而,我試圖運行它,因爲它是測試功能。演示完美運行。唯一的主要區別是他們正在使用jquery 1.4.4,我正在使用jquery 1.9.1。我似乎無法讓後退按鈕正常工作。點擊時會改變網址;但是,#right_column根本不會更新。我直接從演示中拷貝了這段代碼,並調整了div id來匹配我的代碼,但它仍然無法運行。下面的代碼行是有問題的代碼。Javascript/jquery:後退按鈕不會改變內容

/* the below code is to override back button to get the ajax content without reload*/ 
    $(window).bind('popstate', function() { 
     $.ajax({url:location.pathname+'&rel=tab',success: function(data){ 
      $('#right_column').html(data); 
     }}); 
    }); 

另外,我可以使用location.pathname.replace('index.php', 'view.php')嗎?不知道是否這是編寫特定代碼來替換index.php?變量...以及view.php?變量...以將該頁面加載到右列的正確方法。看到我的其他帖子,如果這部分的問題混淆你... javascript/jquery: Need to substring in jquery(修改代碼)

回答

0

對於這可能有所幫助,這最終修復我的代碼,它現在響應返回按鈕。

$(window).on('popstate', function() { 
    $.ajax({url:$(location).attr('href').replace('index.php', 'rightcolumn.php') +'&rel=tab',success: function(data){ 
     $('#right_column').html(data); 
    }}); 
});