onclick="toggledropdown()" を使用して、ページに div (id="menu") があります。この div には、子の img 要素とテキストがあります。トグル コードは、画像以外がクリックされたときに問題なく動作します。ただし、画像をクリックすると、div が下にスライドしてから再び元に戻ります。
トグルコード:
function toggledropdown()
{
if ($("#dropdown").is(":hidden"))
{
$("#dropdown").slideDown(400);
}
else
{
$("#dropdown").slideUp(50);
}
}
body.click は、ページがクリックされた場合にドロップダウンを非表示にします:
$(document.body).click(function(event)
{
var targetID = $(event.target).attr("id");
if (targetID !== "dropdown" && targetID !== "menu")
{
if (!$("#dropdown").is(":hidden"))
toggledropdown();
}
});
ドロップダウン.クリックして本文を無効にします.クリック
$("#dropdown").click(function(e)
{
e.stopPropagation();
});
html div (問題に関係のないものは省略):
<div class="menu" id="menu" onclick="toggledropdown();">
<img id="dropdownthumbnail" (blahsrc/styleblah) />
Text
<img id="dropdownarrow" (blahsrc/styleblah) />
</div>
したがって、繰り返しますが、メニュー div (画像を除く) をクリックするとメニューが正しくスライドし、もう一度 (画像を含む) またはページの他の場所をクリックすると正しく機能しますが、ドロップダウンが非表示のときに画像をクリックすると、 2回切り替えます(スライドして再びスライドするのを見ることができます)。
子 imgs が親の onclick を 2 回トリガーしていますか? 子供に一回、親に一回?なんで?期待どおりに動作させるにはどうすればよいですか: div のどこかをクリックすると、onclick が 1 回トリガーされますか?