私は要素のクリックに基づいて非表示にして表示するドロップダウンを持っています。ただし、ドキュメントの他の場所をクリックすると、このドロップダウンが表示されている間は非表示にしたいドキュメントのクリックと要素のクリックのハンドルの衝突
これは、ドロップダウン・コードです:
function dropdown(){
$('#smenubutton').click(function(e){
var submenu = $(this).find('.submenu');
if (submenu.is(':visible')){
submenu.hide();
}else{
submenu.show();
}
});
}
しかし、このようなコード:
$(document).click(function(e){
e.stopPropagation();
$('.submenu').hide();
});
は明らかに常にサブメニューを非表示になります。両方ともドキュメントの読み込み中に読み込まれます。私はちょうどとても単純なものが欠けていることを知っている。私は重複している(私は検索を試みましたが、私のニーズに基づいて質問を見つけることができませんでした)ことを指摘し、この質問を閉じます。
他のイベントハンドラに 'e.stopPropagation();'を入れます。 'submenu'がクリックされたときに、イベント伝搬を停止する必要があるかもしれません。 –
ブラウザの外をクリックした場合は、イベントを発生させることはできません。私はあなたがオブジェクト '#smenubutton'の外にあると思った。 – reporter
はい、本当に、記者、ありがとう。 – yretuta