2013-01-11 52 views
0

我有什麼事這麼遠:鏈接到選擇了jQuery鏈接的頁面?

$("#navigation li a[id]").click(function() { 
    $("#" + this.id.substr(1)).show(600) 
    .siblings('.toggleDiv').slideUp(600); 
}); 




      <!-- Begin Naviagtion --> 
    <div id="navigation"> 

      <ul> 
       <li><a id="babout">Canada</a></li> 
       <li><a id="bcontact">USA</a></li> 
       <li><a id="bsearch">Mexico</a></li> 
     </ul> 

     </div> 
     <!-- End Naviagtion --> 



<br /><br /> 





<!-- Begin Search --> 
     <div class="toggleDiv" id="search" style=""> 
       Mexico Staff 
     </div> 
    <!-- End Search --> 

<!-- Begin About --> 
     <div class="toggleDiv" id="about" style=""> 
       Canada Staff 
     </div> 
    <!-- End About --> 

     <!-- Begin Contact --> 
     <div class="toggleDiv" id="contact" style=""> 
       USA Staff 
     </div> 
    <!-- End Contact --> 

http://jsfiddle.net/q6ncx/12/

我需要能夠對人網頁鏈接,與已經選擇的三個選項之一。

即。 mysite.com/staff.php#Canada - 「加拿大」鏈接已經被選中。

這可能與jQuery?我知道這在PHP中很容易實現,但如果可能的話,我寧願堅持使用js。從URL

回答

1

獲取哈希和觸發相應的鏈接點擊:

var hash=location.hash; 

if(hash && hash.substr(1).length){ 
    /* use "filter" to match hash to link text*/ 
    $('#navigation li a').filter(function(){ 
     return $.trim($(this).text())==hash.substr(1) ; 
    }).click(); 
} 
+0

對不起,我的無知,我很新的jQuery。我應該能夠使用原始的JS代碼簡單地插入此代碼,並將#divID添加到頁面URL中嗎?我試過了,它似乎沒有工作。 – user1968430

+0

問題顯示在URL匹配中使用類似'Canada'的文本,這與匹配。可以修改爲使用ID作爲散列,但是遵循你所寫的內容 – charlietfl

0

使用internal links。你的URL將被mysite.com/staff.php#Canada和你ANCOR將

<a href="#Canada" id="babout">Canada</a> 

如果要觸發與JS事件:

if(window.location.hash === "Canada" || 
window.location.hash === "somethingElse") { 
    //do something 
}