2011-08-17 96 views
0

我有一個按鈕,當你點擊這個按鈕時,它動態地創建第二個按鈕。我需要將點擊事件放置到動態創建的按鈕(第二個按鈕)上,但我的點擊功能不起作用。如何將動作添加到在jquery中動態創建的元素中?

如何讓我的點擊功能與動態創建的元素一起工作?

+2

你要告訴我們你是如何做到這一點的? –

+0

請顯示您的代碼和錯誤消息或不工作的具體描述。 –

回答

1

你必須使用jQuery的.live()功能,可以發現here

實施例:

$('button').live('click', function(){ 
    ... 
}); 
+0

太棒了,就是我一直在尋找的! –

2

您需要在點擊事件創建後將其綁定到第二個按鈕。或者使用jQuery Live或Delegate功能。

http://api.jquery.com/delegate/

附加一個處理程序,以一個或多個事件的 選擇,現在還是將來相匹配的所有元素的基礎上,一組特定的根 元素。

發佈一些代碼,如果你需要任何更多的幫助。

1

Here is an example

標記:

<button id="create">Create</button> 

<div id="container"> 
</div> 

腳本:

var count = 0; 
$("#create").click(function(e) { 
    var num = count += 1; 
    var newButton = $("<button>New " + num + "</button>").click(function() { 
     alert("Button " + num + " was clicked."); 
    }); 
    $("#container").append(newButton); 
}); 
0

需要使用jqueries活法附加的事件。它將把事件綁定到當前和未來元素的所有實例。

$('.classname').live('click', function() { 
    alert("triggered"); 
}); 

這樣的單擊事件被添加到與類名的類名的所有元素 - 即使你插入相同類別更多的元素。

0
<input id="but1" type="button" value="click"></input> 
<script> 
$(document).ready(function(){ 
    $('#but1').click(function(){ 
    var button = $(document.createElement('input')); 
     button.attr('id', 'but2'); 
     button.val('but2'); 
     button.attr('type', 'button'); 
     button.click(function(){alert('hello');}); 

     $(document.body).append(button); 

    }); 

}); 
</script> 
3

我知道這個問題被問得很久以前...
因爲jQuery的V1.7正確的方式做到這一點是:

$(document).on("click",'.myNewlyCreatedElement', function() { 
    // Your action 
}); 

編號:http://api.jquery.com/on/

相關問題