2013-05-24 8 views
7

にイベントハンドラを追加:jQueryの:私は新しいdiv要素の追加声明持って作成したばかりの要素

$('#dates').append('<div class="'+classname+'">'+dd+'<br /><span class="month_selector">'+dm+'</span></div>'); 

をしかし、私は要素を作成するだけでなく、(「クリック」)に割り当てるしたいアクションにそれ。 もちろん、生成されたidを追加して、このidによって作成された要素にアクセスすることもできますが、もっと美しい解決策があると感じています。

ですか?

答えて

11

idを追加してjQueryに要素を見つけるためにセレクタを解析する必要はありません。あなたはこれを直接行うことができます。

$('#dates').append(
    $('<div class="'+classname+'">'+dd+'<br /><span class="month_selector">'+dm+'</span></div>') 
    .click(function(){ 
     // handle click 
    }) 
); 
+0

おかげのように:)の代わりにIDをクラスセレクタを使用することができます!それは働いている! –

3

あなたは... jqueryの上で使用することができますし、また、あなたが$(".classname")

$('#dates').append('<div class="'+classname+'">'+dd+'<br /><span class="month_selector">'+dm+'</span></div>'); 

$('#dates').on('click','.'+classname, function(){ 
alert("on div click"); 
}); 

$('#dates').on('click','.month_selector', function(){ 
alert("on SPAN click"); 
}); 
+1

'.on()'を使用すると、ドキュメントが準備できたらすぐに実行できます。要素が追加されたときに再度実行する必要はありません。 – Barmar

関連する問題