jQuery 1.9 .live() 不是一个函数

2023-12-29

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

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


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

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


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

For 快速/热修复在实时网站上,do not只需替换函数即可live with on,
as the 参数不同!

.live(events, function)

应映射到:

.on(eventType, selector, function)

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


迁移示例1:

before:

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

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

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

迁移示例2:

before:

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

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

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

如果您作为父母不知道该放什么,document总是有效:

$(document).on('click', '.myButton', function)

也可以看看:

  • jQuery - 如何使用“on()”方法而不是“live()”? https://stackoverflow.com/q/14703646/584192
  • jQuery 1.9 迁移指南 http://jquery.com/upgrade-guide/1.9/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jQuery 1.9 .live() 不是一个函数 的相关文章