2011-02-12 88 views
3

我想知道是否有可能讓腳本檢測URL錨點,並加載特定於該錨點的內容。舉例來說,我有這行代碼:使用Jquery檢測錨點?

<a href="#home"><span id="homeMenu">Home</span></a>

這行代碼監聽該代碼:

$("#homeMenu").click(function() { 
    $("#home_content").show("slow"); 
    $("#accommodations_content").hide("slow"); 
    }); 

我怎麼可能使它的是,如果用戶訪問http://www.myurl.com/home.html#home它加載了家庭內容自動。這也適用於我想實現的所有其他錨。

我想要這個,因爲現在,如果用戶直接訪問任何錨點,沒有任何錨點,它總是會顯示主頁。那麼,有沒有辦法檢測哪個URL被加載,然後運行腳本?

編輯

因此,目前只加載的住宿(在#Home即使)

當前代碼:

<script type="text/javascript"> 
      $(document).ready(function() { 
      document.getElementById("javascriptCheck").style.visibility = 'hidden'; 
      $("#menu").load("snippets/menu.html"); 
      $("#locationMenu").load("snippets/locationMenu.html"); 
      $("#home_content").load("snippets/home_content.html"); 
      $("#accommodations_content").load("snippets/accommodations.html"); 
      $("#history").load("snippets/history.html"); 
      $("#footer").load("snippets/footer.html"); 

      var hash = window.location.hash; 
      if (hash = "#Home") { 
       $("#home_content").show("slow"); 
       $("#accommodations_content").hide("slow"); 
      } 
      if (hash = "#Accommodations") { 
       $("#accommodations_content").show("slow"); 
       $("#home_content").hide("slow");  
      } 
      }); 
     </script> 

回答

9

你必須檢查在頁面加載哈希標籤。

使用此代碼:

var identifier = window.location.hash; //gets everything after the hashtag i.e. #home 

if (identifier === "#home") { 
    $("#home_content").show("slow"); 
    $("#accommodations_content").hide("slow"); 
} 
+0

由於某種原因,我在使用此代碼時遇到了問題。它究竟應該去哪裏? – Johannes 2011-02-12 23:50:58

5

我猜,你想是這樣的:jQuery hashchange plugin。它允許你對哈希的變化做出反應,並通過AJAX加載其他內容 - 但你也可以做其他的事情。用戶甚至可以使用瀏覽器的後退按鈕轉到以前的狀態。