bind/live
他が行われたときにクリックイベントをしようとしています。だから私はとを使用.on()
して.off()
います。行動する方法は、
a.nav-link
divが表示されるをクリックすると、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
が非表示になることです。