1

私は次のリスト構造を持っています(ちなみにこれはメニューです):

<div id="mainmenu"> 
    <ul class="menu">
        <li class="item-435">
        <li class="item-468 active deeper parent">
            <a href="#">News</a>
            <ul>
                <li class="item-469 current active">
                    <a href="/index.php/news/news-topaktuell">Topaktuell</a>
                </li>
                <li class="item-480">
                    <a href="/index.php/news/events">Events</a>
                </li>
            </ul>
        </li>
        <li class="item-476">
        <li class="item-477">
        <li class="item-478">
        <li class="item-479">
    </ul>
</div>

click()最初の にイベント リスナーをアタッチし<li>て、ページのヘッダーを表示したいと考えています。他の<li>タグにもclick()リスナーが必要ですが、このイベントの場合、ヘッダーは非表示にする必要があります。ヘッダーはデフォルトで表示されるため、ヘッダーはホームページ (最初の子) にのみ表示する必要があります。

私がすでにしたこと:

$('#mainmenu .menu li:not(:first-child)').click(function() {
     //hide header
});

$('#mainmenu .menu li:first-child').click(function() {
     //show header
});

しかし、これはサブリストから最初の子も選択しますが、これは望ましくありません。目的のタグのみを選択するエレガントな方法はありますか?

4

2 に答える 2

2

試す

$('#mainmenu .menu > li:not(:first-child)').click(function() {
     //hide header
});

$('#mainmenu .menu > li:first-child').click(function() {
     //show header
});
于 2012-07-26T10:53:17.197 に答える
0

うまくいけば、これはあなたが達成しようとしていることですか?

http://jsfiddle.net/gRoberts/myVs9/

基本的に、LIをクリックすると、クリックしたテキストを表示したまま、ULを表示/非表示にする必要があります。

それがお役に立てば幸いですか?

于 2012-07-26T10:56:26.920 に答える