bind/live
当另一个完成时,我正在尝试单击事件。所以我正在使用.on()
and .off()
。假设采取行动的方式是,当
- 我点击
a.nav-link
一个 div 出现, - 当它发生时,我将
click
事件固定到文档中, - 它绑定了一个单击事件,当我单击 html 中的任何位置时,它会关闭 div 并关闭()文档行为
现在它可以正常运行一轮,但是下次我单击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);
});
});
}
编辑:我在这里要做的基本上是,每当我在两个 div 之外单击时,显示的那个.sub-nav
应该隐藏。