2011-11-01 7 views
3

見出しはそれをすべて言います。どのような私が達成しようとしていますと、(それもサブメニューを持っているので、複数のUL)をメニューにonloadイベントのURLを確認することであり、それは等しい場合、それは大胆かつトリガーmouseoverイベントします:ページurl =アンカーがリストにある場合、トリガーmouseover +太字にしてください

$(document).ready(function(){ 
    $('#content > ul > li a[href]').filter(function() {return this.href.pathname === window.location.pathname;}).css('font-weight','bold'); 
    $('#content > ul > li a[href]').filter(function() {return this.href.pathname === window.location.pathname;}).trigger('mouseover'); 
}); 

<ul id="menu"> 
    <li><a href="#" onmouseover="displayID('biography');">Biography</a></li> 
    <li><a href="/tagged/Commercial_photography" onmouseover="displayID('commercial-photography');">Commercial photography</a></li> 
    <li><a href="/tagged/Fine_art_photography" onmouseover="displayID('fine-art-photography');">Fine art photography</a></li> 
    <li><a href="/tagged/Action" onmouseover="displayID('action');">Action</a></li> 
    <li><a href="/tagged/Video" onmouseover="displayID('video');">Video</a></li> 
    <li><a href="#" onmouseover="displayID('links');">Links</a></li> 
</ul> 

私は非常に単純であると仮定します誤ってjqueryに精通していないので、私は本当に助けていただければ幸いです。

答えて

1

hrefのプロパティは、pathnameの文字列ではありません。コメントの後

function(){ 
    return this.pathname === location.pathname && 
      !/^#/.test(this.getAttribute('href')) //The href at HTML may not 
}             //start with # 

編集:代わりにthis.href.pathname

使用this.pathnameは、あなたの問題を解決するために
getAttribute方法は、元href属性を取得するために使用され、this.href#が、http://fullpath/etc/file#が含まれていないため。

+0

もちろん私の間違い!ありがとうございました。私が気づいたもう1つの質問だけで、#と太字のリンク(例えば、Biography)も作成されます。これを排除する方法はありますか? – Blackie123

+0

@ Blackie123それは可能です、私の更新答えを見てください。 –

+0

これは素晴らしいです!将来の参照のためだけに#でリンクを選択するようになりましたが、否定によって簡単に解決できます:) Robありがとう! – Blackie123