2013-02-07 91 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中已经存在的元素。