2014-01-25 56 views
0

沒有人幫我解決這個問題,它的工作很好的菜單上的鏈接,在div「內容」之前,但是當嘗試導航頁面時,在鏈接裏面div稱爲「內容」,它的工作? 這是加載頁面,無需重新加載標題。html5的歷史api工作的所有鏈接,甚至裏面的內容div

$(function(){ 
    $("a[rel='tab']").click(function(e){ 
     //e.preventDefault(); 
     /* 
     if uncomment the above line, html5 nonsupported browers won't change the url but will display the ajax content; 
     if commented, html5 nonsupported browers will reload the page to the specified link. 
     */ 

     //get the link location that was clicked 
     pageurl = $(this).attr('href'); 

     //to get the ajax content and display in div with id 'content' 
     $.ajax({url:pageurl+'?rel=tab',success: function(data){ 
      $('#content').html(data); 
     }}); 

     //to change the browser URL to 'pageurl' 
     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){ 
     $('#content').html(data); 
    }}); 
}); 
+0

嘗試使用$( 「一[相對= '標籤']」)新的錨。在( '點擊',功能(E) {如果您正在使用ajax加載新鏈接 –

回答

0

您應該處理裝載有阿賈克斯

$(function(){ 
    $("a[rel='tab']").click(clickhandler); 
}); 
$(window).on('popstate', function() { 
    $.ajax({url:location.pathname+'?rel=tab',success: function(data){ 
     $('#content').html(data); 
     $("#content a[rel='tab']").click(clickhandler); 
    }}); 
}); 

var clickhandler = function(e){ 
    pageurl = $(this).attr('href'); 
    $.ajax({url:pageurl+'?rel=tab',success: function(data){ 
     $('#content').html(data); 
     $("#content a[rel='tab']").click(clickhandler); 
    }}); 

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