小编典典

jQuery 1.9 .live() 不是函数

all

我最近将 jQuery 从 1.8 更新到 2.1。我突然发现.live()停止工作了。
我得到错误TypeError: $(...).live is not a function

有什么方法可以代替.live()吗?


阅读 66

收藏
2022-04-29

共1个答案

小编典典

jQuery.live()从 1.9 版开始被移除。

这意味着,如果您从 1.8 及更早版本升级,如果您不遵循下面的迁移指南,您会发现出现问题。您不能简单地替换.live().on()!


在开始搜索和替换之前阅读:

对于实时站点上的 快速/热修复不要 只用 替换关键字live,因为 参数不同on


.live(events, function)

应映射到:

.on(eventType, selector, function)

(子)选择器非常重要! 如果您出于任何原因不需要使用它,请将其设置为null.


迁移示例 1:

前:

$('#mainmenu a').live('click', function)

之后,将子元素 ( a) 移动到.on()选择器:

$('#mainmenu').on('click', 'a', function)

迁移示例 2:

前:

$('.myButton').live('click', function)

之后,将元素 ( .myButton) 移动到.on()选择器,并找到最近的父元素(最好带有 ID):

$('#parentElement').on('click', '.myButton', function)

如果你不知道作为父母应该放什么,body总是有效的:

$('body').on('click', '.myButton', function)
2022-04-29