我有一个JS脚本,它使用jquery 1.4.3动态创建和删除输入文本元素 我需要开始使用jquery 1.9.1
从我能看到的
.live()
功能需要改为
.on()
但只有一半的功能有效..删除功能不再有效可以有人看到原因吗?
完整的源代码位于下方的jsfiddle链接中。
http://jsfiddle.net/jaredwilli/tZPg4/4/
$(function() {
var scntDiv = $('#p_scents');
var i = $('#p_scents p').size() + 1;
$('#addScnt').live('click', function() {
$('<p><label for="p_scnts"><input type="text" id="p_scnt" size="20" name="p_scnt_' + i +'" value="" placeholder="Input Value" /></label> <a href="#" id="remScnt">Remove</a></p>').appendTo(scntDiv);
i++;
return false;
});
$('#remScnt').live('click', function() {
if( i > 2 ) {
$(this).parents('p').remove();
i--;
}
return false;
});
});
答案 0 :(得分:1)
您必须更改一些代码,如下所示:
$(document).on('click','#remScnt', function () {
...
});
而不是
$('#remScnt').live('click', function () {
...
});
像这样,只要将#remScnt
添加到dom中,点击处理程序就会绑定到该元素。
此外,如果您在页面中有多个class
元素,则应使用id
代替remScnt
,id
应该是唯一的。