2011-06-09 183 views
1

我想在這個完整的ajax網站上實現後退按鈕..我試過jQuery歷史插件,但我敢肯定我搞砸了一些東西,因爲哈希顯示OK,但後退按鈕將不加載原來的內容後面..jquery ajax調用「後退按鈕」實現

這是我的菜單是什麼樣子:

 <div id="nav" class="ajaxload menu"> 
      <ul> 
       <li><a href="home.aspx">Home</a></li> 
       <li><a href="about.aspx">About Us</a></li> 
       <li><a href="contact.aspx">Contact</a></li> 
      </ul> 
     </div>  

而Ajax調用:

 $(function() { 
      var $content = $('#content'); 
      $('.ajaxload li a').click(function() { 

       $content.html('<div id="loader"></div>'); 

       var url = $(this).attr('href'); 
       $.get(url, function(data) { 
        $content.hide().html(data).fadeIn("slow", function() { $("#loader").fadeOut("fast") }); 
       }); 
       return false; 
      }); 
     }); 

回答

1

我猜,當你使用歷史插件你可能沒有初始化它。當你初始化它時,你會傳遞一個處理散列變化的回調,以便你可以再次加載內容。因此,舉例來說,而不是做這樣的事情:

$('a').click(function clickedLink() { 
    var href=$(this).attr('href'); 
    $.history.load(href); 
    doSomeAJAXRequest(href); 
    return false; 
}); 

你不得不做這樣的事情:

$.history.init(function hashChanged(hash) { 
    doSomeAJAXRequest(href); 
}); 
$('a').click(function clickedLink() { 
    var href=$(this).attr('href'); 
    $.history.load(href); 
    return false; 
}); 
+0

你確定這個代碼可以與我有什麼工作?我似乎無法讓它工作..(阿賈克斯電話不會工作) – 2011-06-09 21:43:45

+0

@Vitor:我不明白爲什麼它不會。你使用什麼代碼? – icktoofay 2011-06-10 02:14:22

+0

我的菜單應該如何?我必須把#hash?或者這是插件的工作? – 2011-06-10 03:30:56