我有以下jQuery命令在动态创建特定元素时绑定click事件。
$(".bill-remove-icon").live("click", function(){
$(this).parent().hide('slide',function(){$(this).parent().remove()});
});
但是这段代码给出了一个firebug错误:
TypeError: $(...).live is not a function
我在这里做错了什么?如果此代码错误,请提示一种更好的方法将事件绑定到动态创建的元素。
答案 0 :(得分:3)
Live已弃用,您必须使用.on()
$(document).on("click", ".bill-remove-icon", function(){
$(this).parent().hide('slide',function(){$(this).parent().remove()});
});
答案 1 :(得分:1)
live()
在jQuery 1.7中已弃用,已在1.9中删除。您需要使用.on()
,其工作方式与live()
略有不同。您不能将事件处理程序附加到动态注入的元素,您必须将它附加到页面加载时存在的元素,并且将事件委托到动态添加的元素,如下所示:
$(document).on('click', '.bill-remove-icon', function() {
...
});
您应该更改document
更接近bill-remove-icon
的内容,以便事件不会在DOM树的正上方冒泡。
答案 2 :(得分:0)
不要使用live
它已被弃用。使用on
$(".bill-remove-icon").on("click", function(){
$(this).parent().hide('slide',function(){$(this).parent().remove()});
});