2011-09-09 2 views
0

私は、 "selectedimage"のクラスで画像をdivに追加するクリック機能を持っています。私は "selectedimage"を参照する別のクリック機能を作成しようとしていますが、開始しません。これはDOMが最初に読み込まれたときに存在しなかったからですか?ありがとう。バインドされたイベントが新しく作成された要素に適用されないのはなぜですか?

$(".articlethumb").bind('click', function() { 
var currentid = $(this).attr("id"); 
var medium = $(this).find(".thumb-medium").text(); 
var mediumimage = "<img id='" + currentid + "' class='selectedimage' src='" + medium + "' />"; 
$("#mainimage").html(mediumimage); 
}); 

$(".selectedimage").bind('click', function() { 
alert("test"); 
}); 
+0

を: '$( 'articlethumb')'非常に良くある(関数(){})をクリックしますイベントをバインドする方法。 – meagar

答えて

1

.liveを使用してください。

$('.articlethumb').live('click',function(){ 
    your code here 
}) 

イベントがバインドされているときに、DOM内に存在しない要素と関係があり、ライブでこれを修正すると思われます。

+0

美しい。どのように私はこれを見つけていないか分からない。ありがとう! –

1

"bind"を使用する代わりに、 "live"を使用してください。 live以外の同じ構文では、既存の一致する要素と将来の(まだ存在しない)一致する要素にイベントハンドラが適用されます。

1

.bindは、DOMに既に含まれている要素にのみ影響します。すべての既存および将来の要素に "バインド" イベントをするには

.live使用:FYI

$('selector').live(click, function() { 

}); 
関連する問題