我有一個按鈕,當你點擊這個按鈕時,它動態地創建第二個按鈕。我需要將點擊事件放置到動態創建的按鈕(第二個按鈕)上,但我的點擊功能不起作用。如何將動作添加到在jquery中動態創建的元素中?
如何讓我的點擊功能與動態創建的元素一起工作?
我有一個按鈕,當你點擊這個按鈕時,它動態地創建第二個按鈕。我需要將點擊事件放置到動態創建的按鈕(第二個按鈕)上,但我的點擊功能不起作用。如何將動作添加到在jquery中動態創建的元素中?
如何讓我的點擊功能與動態創建的元素一起工作?
太棒了,就是我一直在尋找的! –
您需要在點擊事件創建後將其綁定到第二個按鈕。或者使用jQuery Live或Delegate功能。
http://api.jquery.com/delegate/
附加一個處理程序,以一個或多個事件的 選擇,現在還是將來相匹配的所有元素的基礎上,一組特定的根 元素。
發佈一些代碼,如果你需要任何更多的幫助。
退房的jQuery .live()
標記:
<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);
});
需要使用jqueries活法附加的事件。它將把事件綁定到當前和未來元素的所有實例。
$('.classname').live('click', function() {
alert("triggered");
});
這樣的單擊事件被添加到與類名的類名的所有元素 - 即使你插入相同類別更多的元素。
<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>
我知道這個問題被問得很久以前...
因爲jQuery的V1.7正確的方式做到這一點是:
$(document).on("click",'.myNewlyCreatedElement', function() {
// Your action
});
你要告訴我們你是如何做到這一點的? –
請顯示您的代碼和錯誤消息或不工作的具體描述。 –