2012-02-21 12 views
-2

は、誰かが助けることができますか?メニューをクリックすると、ドロップダウンメニューは表示されません。jqueryのメニューの問題

jsfiddle

編集が今、私はそれこのコード変更は、このリンク上でコードを表示してください。ここでメニューリンクをクリックするとドロップダウンメニューが表示されますが、他の場所をクリックすると非表示になります。

jsfiddle

+2

を試してみてくださいここに関連するコードを投稿してください。 – PeeHaa

+1

あなたは.hover ''のように.click() 'イベントを使用するためのバグ()' –

+0

それはホバーと正常に動作し、私はあなたがクリックし使用して、私は、Li aにトリガを変更し –

答えて

3

この方法を試してください:あなたが仕事に行くされていないclickため.hover()関数の構文を使用しているよう

$(function() { 
     $('.top-nav li').click(function() { 
      $('ul',this).toggle(); 
     }); 
    }); 

は、それは見えます。

return false;に忘れていないか、リンクが続きます。あるいは、代わりに、e.preventdefault();を使用することもできます。

return falseは、e.preventDefault()e.stopPropagtion()の両方を行います。ただし、関数にパラメータを追加する必要がありe使用するためには:$('.top-nav li').click(function(e) {

0

これが私の仕事:

$(function() { 
    $('.top-nav li a').click(function() { 
     //this reveals the ul that is immediately after the clicked item 
     $(this).next('ul').toggle(); 
    }); 
});​ 

をあなたはおそらく、そうでない場合は、いずれかが明らかにされたときに他のすべてのsubnavsを非表示にする機能を追加したいですすぐにそれらのすべてを開くことができます。これはそれを行う必要があります:

希望に役立ちます!

+0

をぼかすべきだと思います。このようにして、トップ・ナビゲーションで「非アクティブ」要素を持つことができます。トリガーは、Li上に留まる場合、[はい、あなたは正しい:) – Heroes182

+0

私はどこかに私はそれがダウンメニューのすべてのドロップを隠していない空の場所を意味クリックすると、これに伴う問題があります。 – 2619

0

この

$(function() { 
    $("ul.top-nav li").click(function() { 
    $('ul', this).css("display", "block"); 
    }); 

    $("ul.top-nav li").mouseleave(function() { 
    $('ul', this).css("display", "none"); 
    }); 
}); 
+0

mouseleaveを使用すると、すべてのドロップダウンメニューが非表示になります。 –