jQuery 1.9 .live() 不是函数
2022-08-30 00:13:23
我最近将jQuery从1.8更新到2.1。我突然发现停止工作。
我收到错误。.live()
TypeError: $(...).live is not a function
有什么方法可以用来代替?.live()
我最近将jQuery从1.8更新到2.1。我突然发现停止工作。
我收到错误。.live()
TypeError: $(...).live is not a function
有什么方法可以用来代替?.live()
.live()
这意味着,如果您要从版本 1.8 及更早版本升级,如果不遵循下面的迁移指南,则会注意到某些内容会中断。您不能简单地替换为 !.live()
.on()
对于实时站点上的快速/热修复,不要只是将函数替换为 ,
因为参数是不同的!live
on
.live(events, function)
应映射到:
.on(eventType, selector, function)
(儿童)选择器非常重要!如果出于任何原因不需要使用它,请将其设置为 null
。
以前:
$('#mainmenu a').live('click', function)
之后,将子元素 () 移动到选择器:a
.on()
$('#mainmenu').on('click', 'a', function)
以前:
$('.myButton').live('click', function)
之后,将元素移动到选择器,并找到最接近的父元素(最好带有ID):.myButton
.on()
$('#parentElement').on('click', '.myButton', function)
如果您不知道要将什么作为父级,则文档
始终有效:
$(document).on('click', '.myButton', function)
另请参阅:
您可以通过包含以下 JavaScript 代码来避免重构代码
jQuery.fn.extend({
live: function (event, callback) {
if (this.selector) {
jQuery(document).on(event, this.selector, callback);
}
return this;
}
});