コードがあります。 ボタン上のこのコードは、開いているメニューをクリックします。 ボタンをもう一度クリックすると、メニューが非表示になります(show
クラス、showクラスにはdisplay:block
ルールがあるので、ボタンをクリックしてこのアイテムの表示を切り替えます)。 次の行には、どの要素がクリックされたかを確認するイベントがあります。メニューの「外側」をクリックすると、メニューが非表示になり、beacuse私は.show
クラスを削除します。要素を表示して本文に隠すロジック
そして今、私は問題を抱えています。コードの最初の部分のように見えます(button.on( 'click')) ) - 私は、仕事が、コードの第二の部分も実行されることを意味し、このロジックは今壊れている
は、あなたがこの問題を回避するための任意のアイデアを持っている おかげ
var menu = $('.main-menu');
var button = $('.burger');
button.on('click',function() {
if (menu.hasClass('show')) {
menu.removeClass('show');
$(this).removeClass('opened');
} else {
menu.addClass('show');
$(this).addClass('opened');
}
});
$(document).bind("mouseup touchend", function(e){
var container = menu;
if (!container.is(e.target)
&& container.has(e.target).length === 0) {
container.removeClass('show');
button.removeClass('opened');
}
});
これらの回答を確認してください(http://stackoverflow.com/a/23685834/6812815)http://stackoverflow.com/a/23685834/6812815)(http://stackoverflow.com/a/13145711/ 6812815)(http://stackoverflow.com/a/13145711/6812815)。たぶんあなたを助けることができます。 – vadber