2012-11-29 57 views
3

我有一些澳鵬的HTML代碼到我現有的div像這樣的功能補充說:jQuery的事件功能元素使用.append()

<div id="my_ok_div"> 
<span>click me</span> 
<div class="okay">ok</div> 
</div> 

jQuery的補充申報單:

$('#my_ok_div').click(function(){ 
$('#my_ok_div').append('<div class="okay">bla</div><div class="okay">bla bla</div>'); 
}); 

我也有與DIV工作帶班好嗎

$('.okay').click(function(){ 
    alert('all okay!'); 
}) 

這完全適用於工作的函數已經存在的分度類好嗎包含「ok」字樣。 但是,這不適用於附加的div。爲什麼以及如何解決這個問題?謝謝。

回答

5

您可以綁定(或重新綁定)的情況下,當你調用.append,或者您可以使用事件委派:

$("#my_ok_div").on('click', '.okay', function() { 
    alert('all okay!'); 
}); 
+0

上面的代碼click事件分配給所有'父'#.okay'內my_ok_div',而不是所有的'.okay'。以下內容不適用於您動態添加的div。 ''(「#my_ok_div .okay」)。on('click',function(){alert('all okay!');});' – zeMinimalist

+0

@SimonHartigan對我的回答是否正確?我不確定我明白。 –

+0

你的回答是正確的。我只是增加了評論,因爲我覺得這個問題沒有很好地解釋給不明白的人,比如@flinth – zeMinimalist