#javascript #jquery #html
#javascript #jquery #HTML
Вопрос:
Я использую функцию цикла для заполнения некоторых элементов в div. Каждый элемент этого divs имеет функцию onClick. Проблема в том, что функция onclick не запускается.
Вот мой код:
var Source = "#boxcard";
var ImgSource = [
"http://icons.iconarchive.com/icons/martin-berube/sport/96/Volleyball-icon.png",
"http://icons.iconarchive.com/icons/reclusekc/kulo/96/Skull-1-icon.png"
];
function OpenCard() {
var id = $(this).attr("id");
alert (id);
}
for (var y = 1; y < 3 ; y ) {
$.each(ImgSource, function(i, val) {
$(Source).append("<div class='flipper' id='flipper" y i "'> <div class='front'></div><div class='back'><img src=" val " /></div></div>");
$("flipper" y i).click(OpenCard);
});
}
Комментарии:
1. Почему бы вам просто не привязать обработчик кликов к
.flipper
классу (делегированное событие) вместо каждого отдельного идентификатора (direct)?2. @scrowler Спасибо за совет. Это работает хорошо. Спасибо за вашу помощь
Ответ №1:
Вам не хватает заголовка #
в имени вашей переменной:
$("#flipper" y i).click(OpenCard);
[Править]
Кроме того, как кто-то предложил в комментариях, вы можете просто использовать имя класса после завершения итерации:
$(".flipper").click(OpenCard);
Комментарии:
1. Спасибо за ответ. ваш код работает отлично @intracept