2009-10-05 123 views
0

如何連接動態生成的對象(div)。 我的意思是DIVS在$(document).ready(function()開始時沒有出現在輸出中。JQuery訪問動態創建的對象

如果我做的:

$('#click_me').click(function() { 
    $('#container').append('<div id="clicker2">can you click on me?</div>'); 
}); 

$('#clicker2').click(function() { 
    alert('hurray, it works'); 
}); 

的clicker2將無法正常工作

我怎樣才能解決這個問題? 我打算創建多個動態。我也想將jquery動作分配給它們。

回答

3

。點擊()未在以後添加跨度或div的工作職能,就需要使用.live()

$("#clicker2").live("click", function(){ 
    # do stuff to spans currently existing 
    # and those that will exist in the future 
}); 
+0

+1我不知道現場()。似乎很好! – 2009-10-05 11:39:51

+0

以及我的行爲得到重複以及! :( 當我做APPEND,然後分配動作 下一次我做追加並ass行動 當動作被激發..它運行兩次 – 2009-10-05 13:11:33

0

只要把點擊第一點擊功能域:

$('#click_me').click(function() 
{ 
    $('#container').append('<div id="clicker2">can you click on me?</div>'); 
    $('#clicker2').click(function(){ alert('hurray, it works'); }); 
}); 

當你擁有了它,結合被稱爲,但沒有「分區#clicker2」綁定到第二功能。

希望這會有所幫助。

1

創建div顯式並在添加它之前組裝它的屬性和事件。

var $div = $('<div />').append('can you click on me?').attr('id', 'clicker2').click(function() { 
alert('hurray, it works'); 
}); 
$('#container').append($div);