0

非常に単純な JavaScript で問題が発生しています。マウスがホバーするか、メニューから離れたときに、サイトのドロップダウンメニューを表示および非表示にすることになっています。

問題は、スクリプトがメニューの ul タグによってトリガーされ、ドロップダウンに複数の UL があることです。メニューにカーソルを合わせると正しく表示されますが、マウスをネストされたULの1つに移動すると、スクリプトのためにドロップダウンが再び非表示になります。

これを解決する方法がわからない:S

これは私のメニューです:

<div class="menu" id="menu">
        <ul>
            <li><a href="#">Forside</a></li>
            <li><a href="#">Service</a>
                <ul>
                    <li class="menusektion1">
                        <h1>Vores arbejde</h1>
                        <ul>
                            <li><a href="">projekt</a></li>
                            <li><a href="">projekt2</a></li>
                            <li><a href="">projekt3</a></li>
                            <li><a href="">projekt4</a></li>
                        </ul>
                    </li>
                    <li class="menusektion2">
                        <h1>Menupunkt2</h1>
                        <ul>
                            <li><a href="">Title</a></li>
                            <li><a href="">Title2</a></li>
                            <li><a href="">Title3</a></li>
                            <li><a href="">Title4s</a></li>
                        </ul>
                    </li>
                </ul>
            </li>
            <li><a href="#">Projekter</a></li>
            <li><a href="#">Referencer</a></li>
            <li><a href="#">Kontakt</a></li>
        </ul>    
    </div>

これは私のJavaScriptです:

    $(document).ready(function(){   
  $('#menu ul > li')
    .mouseenter(function(){
      $(this).find('ul').show();
    })
    .mouseleave(function(){
      $(this).find('ul').hide();
    }); 
});

誰かがここで私を助けることができますか?

4

2 に答える 2

3

ホバーされた li タグ内に ul タグを隠したいとのご要望を承りました。あなたの構文はほぼ正しいです。問題は、メニュー内のすべての li タグにイベント リスナーを追加していることだと思います。これを試して :

$('#menu > ul > li').mouseenter(function(){});

このようにして、最初のレベルの ul 内の ul および li タグが大きく影響を受けます。

于 2012-08-06T08:09:40.693 に答える
0

「検索」はターゲットの子要素をトラバースするために機能するため、基本的には li 内で ul を探します (したがって、親 ul が見つからないのはなぜですか)。parent()これがあなたのツリーに適しているかどうかを試してみてください。closest('ul')

于 2012-08-06T08:02:20.527 に答える