我遇到嵌套事件的问题
请考虑这是HTML代码:
<button id="first">first button </button>
<button id="second">second button </button>
这是jQuery代码:
$(document).ready(function() {
$('#first').click(function() {
$('#second').click(function() {
alert('test');
});
});
});
单击第一个按钮n次...然后单击第一个按钮一次..警报显示n次。
我想处理这个问题:
点击第一个按钮n次...然后点击第一个按钮一次..警告显示一次次
但未使用one()
方法
答案 0 :(得分:0)
你可以这样做 -
var isBind = false;
$('#first').click(function() {
if(!isBind){
$('#second').click(function() {
alert('test');
});
isBind = true;
}
});
答案 1 :(得分:0)
只需使用off()
取消绑定事件:
$(document).ready(function() {
$('#first').click(function() {
$('#second').off('click').click(function() {
alert('test');
});
});
});
答案 2 :(得分:0)
使用标志(在线程概念中称为锁)。
如:
$(document).ready(function() {
var clicked = false;
$('#first').click(function() {
clicked = true;
});
$('#second').click(function() {
if(clicked){
alert('test');
clicked = false;
}
});
});
因为第二个事件仅在window.clicked
为真时使用。
我知道,这很难看,但是......它很有效,而且很容易理解。 (它支持多个事件监听器,只记得更改对象window
的属性名称)