2013-02-07 123 views
0

我正在編寫一個腳本來動態創建和刪除元素,添加元素工作正常。但#removeText函數沒有觸發,我假設是因爲它是在頁面加載完成之後創建的或者是其他內容。如果已經動態創建#removeText點擊函數,我該如何才能使用它?動態刪除元素jquery .click not Firing

var i = 0; 

$('#addText').on('click', function() { 
    var div = $("#addText").closest('div').attr('id'); 

    $("<p><input type=\"text\" id=\"text" + i + "\" placeholder=\"Type something…\"><a href=\"#\" id=\"removeText\">Remove</a></p>").appendTo('#' + div); 
}); 

$('#removeText').on('click', function() { 
    console.log(1); 
}); 
+0

如果多次添加此項,則無法複製ID。根據定義,它們必須是唯一的 – charlietfl

回答

3

如果#removeText不會在DOM存在,當你調用$("#removeText").on,再沒有什麼獲取綁定,因爲沒有什麼綁定,因爲它不存在。

所有不會丟失。使用事件委派:

$(document).on('click', '#removeText', function() { 

你或許應該做同樣的#addText爲好。您也可以將其委託給DOM中已經存在的元素。