0

有人可以解释一下吗?我的代码工作正常,现在我使用 .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!')
});

谢谢!

4

3 回答 3

3

我猜你使用的是 jQuery 1.9?.live()已移除。

同时,您可以使用Migrate 插件恢复.live()或继续使用.delegate().

但是,为了获得最佳的前向兼容性,请考虑使用.on(). 只需切换前 2 个参数.delegate()

于 2013-05-07T17:45:55.750 回答
0

.live在 jQuery 1.9 中被删除。 .delegate尚未删除。事实上,它并没有被弃用,但它的使用已被.on( .delegatedocumentation)所取代。我建议您使用.on所有绑定,包括事件委托。

于 2013-05-07T17:49:00.777 回答
0

Live 在 jQuery 中已被弃用。

从 jQuery 1.7 开始,不推荐使用 .live() 方法。使用 .on() 附加事件处理程序。旧版本 jQuery 的用户应该使用 .delegate() 而不是 .live()。参考:http ://api.jquery.com/live/

于 2013-05-07T17:44:45.730 回答