我最近将jQuery从1.8更新到了2.1。我突然发现这些.live()停止工作。 我得到了错误TypeError: $(...).live is not a function。
.live()
TypeError: $(...).live is not a function
有什么可以代替的方法.live()吗?
这意味着,如果您要从1.8版或更早版本进行升级,则如果不遵循以下迁移指南,将会发现事情中断了。您不能简单地将其替换.live()为.on()!
.on()
对于 快速/热补丁 上线的站点, 不 只是替换关键字live用on, 因为 参数是不同的 !
live
on
.live(events, function)
应该映射到:
.on(eventType, selector, function)
(子)选择器非常重要! 如果由于任何原因不需要使用此功能,请将其设置为null。
null
之前:
$('#mainmenu a').live('click', function)
之后,将子元素(a)移至.on()选择器:
a
$('#mainmenu').on('click', 'a', function)
$('.myButton').live('click', function)
之后,将元素(.myButton)移至.on()选择器,然后找到最近的父元素(最好是ID):
.myButton
$('#parentElement').on('click', '.myButton', function)
如果您不知道该如何放置父项,则body始终可以使用:
body
$('body').on('click', '.myButton', function)