我最近将 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)