いきなり本題に入ります。基本的に、次の HTML 構造があります。
<div id="global-container">
<div class="content-pusher">
<a class="mobile-menu-btn" href="#">Mobile menu btn</a>
</div>
</div>
そして次の JavaScript/jQuery:
$(function() {
// Side panel.
$('.content-pusher').click(function(e) {
$this = $(this);
if ($this.parents('#global-container').hasClass('side-panel-open'))
{
$this.parents('#global-container').removeClass('side-panel-open');
}
});
$('.mobile-menu-btn').click(function(e) {
e.preventDefault();
$('#global-container').addClass('side-panel-open');
});
});
問題は、a をクリックしたときにクラスを追加し、div をクリックしたときにside-panel-open
クラスを削除したいということです。#global-container
Mobile menu btn
content-pusher
問題:
クリックすると、クラスがdivMobile menu btn
に追加され、内部にあるためすぐに削除されます。(そのdivの外に置くことはできません)。side-panel-open
#global-container
Mobile menu btn
content-pusher
最初は$('.content-pusher').click...
トリガーが機能する前に考えていましたが、その関数の後にこのクラスが追加されても、div$('.mobule-menu-btn').click...
にクラスがあるかどうかを確認するとTRUEを返すため、機能しません。side-panel-open
#global-container
JSFiddle: http://jsfiddle.net/xFdKx/