を使用して要素を作成しJquery
、クラスを指定し.book
ます。
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');
});
なぜこれが起こるのですか?どうすれば修正できますか?
ジャスフィドル
別物:
また、ボディにクラスを含む div が既にある場合.book
、クリック イベントはその div で機能しますが、追加された s は機能しませんdiv
。ここにそれを示す別のjsfiddleがあります