2014-11-30 2 views
-2

У меня есть код JQuery, который делает div onClick с определенным классом .caption. После того, как я вызвал событие click в .caption, этот класс не работает. Как я могу это сделать.Запустить событие щелчка на DOM, опубликованном jQuery

$('#edit').on('click',function(){ 
     var pre = '<div class="col-xs-6 col-md-4" style="margin:0 auto;"><div class="thumbnail"><div class="caption" style="text-align:center;">';  
     $("#imgs").append(pre); 

}); 

    $('div.thumbnail').on('click','.caption',function(){ 
    alert("Del"); 
}); 
+1

'div.thumbnail' должен существуют при запуске кода, попробуйте использовать '# imgs' в качестве первого селектора – charlietfl

+0

Не знаю, почему этот вопрос спускался проголосовали. Любая причина. – user254153

+0

Спасибо, что это действительно трюк и работал как шарм. @charlietfl – user254153

ответ

0

Это потому, что, как @charlieftl указал в комментариях, элемент div.thumbnail не существует во время выполнения, и это не представляется возможным привязать событие щелчка к элементу, который не присутствует ...

Что вы можете сделать, однако, полагаться на пропускании события - например, когда событие щелчка срабатывает на недавно добавленном .caption, он на самом деле пузырь все пути к вершине дерева DOM (к объекту document). Вы можете прослушать этот барботаж на любом элементе, который уже присутствует во время выполнения - конечно, это является безопасным для прослушивания document, так как он является объектом, который является всегда присутствует:

$(document).on('click', '.caption', function(){ 
    alert("Del"); 
}); 
Смежные вопросы