Jquery clickevent не работает

#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