$(document).ready(function(){
$('.a').click(function(){
another();
})
});
function another(){
alert('Now Click B');
$('.b').click(function(){
alert('B Clicked');
})
}
<p class="a">Click A First</p>
<p class="b">Click B</p>
第一次:
之后(点击A)&#34;现在点击B&#34;提醒一次。
之后(点击B)&#34; B点击&#34;警惕一次。
第二次:
之后(点击A)&#34;现在点击B&#34;提醒一次。
之后(点击B)&#34; B点击&#34;提醒两次。
为什么?
答案 0 :(得分:0)
(点击B)“B点击”提醒两次。
因为每次点击A
,都会将另一个事件处理程序绑定到B.
所以,第二次有两个点击事件处理程序到B。
制作它(根据Rayon的建议做出改变)
function another(){
alert('Now Click B');
$('.b').one("click",function(){
alert('B Clicked');
})
}
如果对B上的事件必须绑定的时间没有限制,则在document.ready
事件本身中分配事件。
$(document).ready(function(){
$('.a').click(function(){
another();
})
$('.b').click(function(){
alert('B Clicked');
})
});
答案 1 :(得分:0)
因为您在点击时添加新订阅...首次点击后添加到按钮B事件,然后您在第二次点击后添加另一个事件
答案 2 :(得分:0)
简单地说,在第二次点击<nav class="navbar navbar-default">
<div class="container-fluid">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav navbar-left">
<li>
<a href="#">Free shipping over $50</a>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li><a href="#">Link</a></li>
<li>
<a class ="lita" href="#about">Be part of THE CIRLCE</a>
</li>
<li>
<a href="#services">JOIN </a>
</li>
<li>
<a href="#contact">LOGIN</a>
</li>
</ul>
</div><!-- /.navbar-collapse -->
</div><!-- /.container-fluid -->
</nav>
之后,B
有 2 onClick事件处理程序。所以你会收到2个警报。
要验证,只需对A
执行第三次点击,点击A
即会收到 3次提醒。
答案 3 :(得分:0)
这是因为事件处理程序注册位于click
的点击处理程序中,因此A
事件被注册了一次。
你可以使用jquery .one()
,它只将事件处理程序附加到指定的元素一次。
将处理程序附加到元素的事件。每个事件类型的每个元素最多执行一次处理程序。
JS CODE:
function another(){
alert('Now Click B');
$('.b').one('click',function(){
alert('B Clicked');
});
}