有人可以解释一下吗?我的代码工作正常,现在我使用.delegerate但我不知道为什么我必须使用它。 我有一个带有“ajaxDiv”类的ajax创建元素。当我像这样使用.live时,我没有得到警报。我在这个函数之后编写的所有代码都不起作用。
$(".ajaxDiv").live("click", function(event){
alert('I don\'t work.')
});
但是当我这样做的时候,就可以了。
$("body").delegate(".ajaxDiv", "click", function(){
alert('I work like a charm!')
});
谢谢!
答案 0 :(得分:3)
我猜你使用的是jQuery 1.9? .live()
已被移除。
与此同时,您可以使用Migrate Plugin恢复.live()
或继续使用.delegate()
。
但是,为了获得最佳的向前兼容性,请考虑使用.on()
。只需切换.delegate()
答案 1 :(得分:0)
Live已在jQuery中弃用。
从jQuery 1.7开始,不推荐使用.live()方法。使用.on()附加事件处理程序。旧版jQuery的用户应该使用.delegate()而不是.live()。 参考:http://api.jquery.com/live/
答案 2 :(得分:0)
.live
。 .delegate
尚未删除。实际上,它并未被弃用,但其使用已被.on
(.delegate
documentation)取代。我建议您对所有绑定使用.on
,包括事件委派。