2013-01-11 46 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 
}