一尘不染

jQuery 1.9 .live()不是函数

javascript

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

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


阅读 364

收藏
2020-04-25

共1个答案

一尘不染

jQuery.live()已从1.9版开始删除。

这意味着,如果您要从1.8版或更早版本进行升级,则如果不遵循以下迁移指南,将会发现事情中断了。您不能简单地将其替换.live().on()


开始搜索并替换之前,请先阅读以下内容:

对于 快速/热补丁 上线的站点, 只是替换关键字liveon
因为 参数是不同的

.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)
2020-04-25