2017-09-25 7 views
0

が、これは、スタック上の私の最初の質問です、私が持っているこのHTML/jQueryの:同じページでダブルトグルをダブルクリックするとなぜですか?

$("#mdrop1").toggle(function() { 
 

 
    $("#mt1").slideDown(); 
 
    $("#mt2").slideUp(); 
 

 
}, function() { 
 
    $("#mt1").slideUp() 
 

 
}); 
 

 
$("#mdrop2").toggle(function() { 
 

 
    $("#mt2").slideDown(); 
 
    $("#mt1").slideUp(); 
 
}, function() { 
 
    $("#mt2").slideUp() 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<a href="#" id="mdrop2">dropdown 2</a> 
 
<div class="dropdown-laterale" id="mt2"> 
 
    <a href="menu1.html">menu 1</a> 
 
    <a href="menu2.html">menu 2</a> 
 
    <a href="menu3.html">menu 3</a> 
 
</div> 
 
<hr> 
 
<a href="#" id="mdrop1">dropdown 1</a> 
 
<div class="dropdown-laterale" id="mt1"> 
 
    <a href="othermenu1.html">other menu 1</a> 
 
    <a href="othermenu2.html">other menu 2</a> 
 
    <a href="othermenu3.html">other menu 3</a> 
 
</div> 
 
<hr>

私は#mt2#mdrop1が正しく、$mt2 slideupを開いて、同じ動作をするときで最初にクリックします私はすでに#mt1#mdrop2をクリックしますが、私はこれらの2つのトグルで自分のアクションを繰り返す場合は、ダブルクリックでのみ動作します...なぜですか? 私の説明が澄んでいることを祈っています:)

+0

私はあなたのコードを試してみましたが、それがすることになっているとして、それはちょうど、mdrop要素を切り替えます。あなたのonclickイベントはどこですか?何が起こると思いますか? –

答えて

0

あなたの説明は実際にはあまり明確ではありませんが、クリックするとメニューが切り替わります。代わりに$('#mt1').click(function(){....})を使用してください。ここでクリック作用の他に https://api.jquery.com/click/

の詳細について見る、トグル用コードが正しくありません、あなたはそれに2つのコールバック関数を渡すことはできません、jqueryのは、私は私の問題を解決しhttp://api.jquery.com/toggle/

+0

私の悪い説明のため申し訳ありませんが、私がしたいことは、既に開いている場合は、メニューを開くときに、上記のように – user3752854

+0

を閉じると、jqueryの 'click'を使用する必要があります。 –

0

を参照してください、それをサポートしていません。このソリューションで:

$('#mdrop1').click(function(){ 
 
\t \t \t 
 
\t \t \t if ($('#mt1').css('display') == 'none'){ 
 
    \t \t \t $("#mt1").slideDown(); 
 
\t \t \t \t 
 
\t \t \t \t \t if ($('#mt2').css('display') == 'block') 
 
\t \t \t \t \t { 
 
\t \t \t \t \t \t $("#mt2").slideUp(); 
 
\t \t \t \t \t } 
 
\t \t \t } 
 
\t \t \t else 
 
\t \t \t { 
 
\t \t \t \t $("#mt1").slideUp(); 
 
\t \t \t } 
 
\t \t 
 
\t \t }); 
 
\t \t 
 
\t \t $('#mdrop2').click(function(){ 
 
\t \t \t 
 
\t \t \t if ($('#mt2').css('display') == 'none'){ 
 
    \t \t \t $("#mt2").slideDown(); 
 
\t \t \t \t 
 
\t \t \t \t \t if ($('#mt1').css('display') == 'block') 
 
\t \t \t \t \t { 
 
\t \t \t \t \t \t $("#mt1").slideUp(); 
 
\t \t \t \t \t } 
 
\t \t \t } 
 
\t \t \t else 
 
\t \t \t { 
 
\t \t \t \t $("#mt2").slideUp(); 
 
\t \t \t } 
 
\t \t 
 
\t \t });

関連する問題