bind/live他が行われたときにクリックイベントをしようとしています。だから私はとを使用.on()して.off()います。行動する方法は、
a.nav-linkdivが表示されるをクリックすると、clickイベントをドキュメントに固定すると、- クリックイベントをバインドし、HTML内の任意の場所をクリックすると、divを閉じてドキュメントの動作をoff()します。
今では1ラウンドは正常に動作しますが、次にクリックするa.nav-linkと、すべてのタスクが一度に実行されるので、ここで何をしているのでしょうか。
デモ: http: //jsfiddle.net/xHNQ3/1/
<div id="container">
<header>
<div class="nav">
<a href="#" id="nav-link">click me</a>
</div>
<div class="sub-nav"></div>
</header>
</div>
$('#nav-link').on('click', bindOnClick);
function bindOnClick() {
$('.nav').addClass('isVisible');
$('.sub-nav').show(function(){
$(document).on('click', 'html', function(){
alert('done');
$('.sub-nav').hide();
$(document).off('click', 'html', bindOnClick);
});
});
}
編集:私がここでやろうとしていることは、基本的に、2つのdivの外側をクリックするたびに、表示されるdiv.sub-navが非表示になることです。