2011-06-27 11 views
-1

私は、水平なメインナビゲーションとサイドバースタイルのサブナビゲーションを利用している私が働いているCMSサイトを持っています。スタイルjQueryステートメントのヘルプ

横のメニュー項目は、私たちのこと、私たちの仕事などのようなサイトのセクション用であり、サイドバーサブナビゲーションはそのセクションに関連するコンテンツ用です。

ユーザーが水平メニュー項目の1つをクリックし、そのセクションのコンテンツとサイドバーナビゲーションが表示されたら、サイドバーメニュー項目に関係なく、そのセクションに関連する水平メニュー項目にクラスを適用したいと思いますクリック。これを実現するために

「ul.about-サイドバー」が、ページ上に表示されている場合は、それぞれのサイドバーのメニュー項目は、その基本的に私はjQueryを使って作成したいものを、それに割り当てられた固有のクラスは...

ありました「About Us」メニュー項目に「active」クラスを追加します。

しかし、私はステートメントをどのように言い方をするかについて少し不明です...任意のアイデア?これは、要素を探します

$("#horizontalMenu .menuItem:contains('About Us')"); 

About Usメニュー項目は一意のIDを持っていない場合はそのようなことは、あなたはおそらく、それはのようなセレクタを使用して見つけることができます

if ($("ul.about-sidebar").length > 0) { 
    $("#AboutUs").addClass("active"); 
} 

を動作するはず

+0

あなたは自分のページにあなたのJSを伝えてからJSでそのスタイルを適用するために、いくつかのサーバー側のコードを使用するのが最善でしょう。その情報に簡単にアクセスできますか? – Ben

答えて

1

クラス'menuItem'"About Us"の要素の下に、Id="horizontalMenu"の文字を含みます。

0
$('ul').live('click', function(event) { 
    var target = $(event.target); 
    $('#' + target.attr('id')).removeClass('inactive-class').addClass('active-class'); 
}); 

これは、クリックした任意のul要素に適用されます。 <ul>要素を区別するのは問題ありません。水平ナビゲーションバーのすべての要素が$('ul.horiz-navbar')のようなクラスによって選択されている方が良いかもしれません。