Я создаю элемент с помощью Jquery
и дать ему класс .book
:нажмите на Jquery созданный элемент не работает
jQuery('<div/>', {
name: "my name",
class: 'book',
text: 'Bookmark',
}).appendTo('body');
тогда я хочу сделать что-то при нажатии, что класс, поэтому, естественно, я написал быстрый и легко:
$('.book').click(function(){
alert('I have been clicked');
});
это работает
что не работает, то, если у меня есть его добавить эти элементы при нажатии. так что следующее не работает:
var bms = 0;
$('button').click(function(){
bms += 1;
jQuery('<div/>', {
name: bms,
class: 'book',
text: 'Bookmark ' + bms
}).appendTo('body');
});
$('.book').click(function(){
alert('I have been clicked');
});
почему это происходит, и как я могу это исправить?
Jsfiddle
другая вещь:
Кроме того, если у меня уже есть DIV с классом .book
в моем теле, событие щелчка будет работать на том, но не любой из прилагаемой div
s. here is another jsfiddle to show that
Посмотрите обработку событий с динамически добавленными элементами. –
В то время '$ ('. Book'). Click (..." назначение обработчика событий происходит, нет элементов DOM с 'class =" book "'. См. Ответ @KyleK для способа присвоить события текущему и будущие предметы. – Igor