Мой код содержит два дивы с одинаковым класса («коробки»), но разные идентификаторов S следующим образом:оповещения показывает дважды вместо одного раза
<div class="box" id="inside1">
<button>Hey</button>
</div>
<div class="box" id="inside2>
<button>Hey</button>
</div>
Внутри каждого DIV является <button>
что скрытый. После нажатия одной «коробки» появляются обе кнопки. Если пользователь нажимает одну из кнопок, сообщение «эй» должны быть прижаты к массиву (либо array1
или array2
, в зависимости от кнопки пользователь нажал) и этот массив должен быть предупрежден:
alert(array1[0]); // or alert(array2[0]) depending on button clicked
Мой код работает нормально, но проблема в том, после нажатия на одну из кнопок и получить 1 предупреждение, если я нажимаю другую кнопку, я получаю 2 предупреждения, а не только 1.
Вот мой код:
var array1 = [];
var array2 = [];
$('body').once('click','.box', function() {
$('button').show();
var id = $(this).attr('id');
function x(array) {
$('button').click(function() {
array.push("hey");
y(array);
});
}
function a() {
if (id == "inside1") {
x(array1);
}
if (id == "inside2") {
x(array2);
}
}
a();
});
function y(array) {
alert(array[0]);
}
И JSFiddle.
Событие будет пузыриться от кнопок '.box' div. – Musa