出现此错误:
Uncaught TypeError: Object [object Object] has no method 'live'
从这个JavaScript和jQuery代码:
init: function(options) {
var form = this;
if (!form.data('jqv') || form.data('jqv') == null ) {
options = methods._saveOptions(form, options);
// bind all formError elements to close on click
$(".formError").live("click", function() {
//Getting error here:
//Uncaught TypeError: Object [object Object] has no method 'live'
});
}
return this;
};
为什么缺少方法live
?
答案 0 :(得分:32)
.live
被删除
参见DOC:http://api.jquery.com/live/
请尝试使用.on
:
$(document).on('click', '.formError', function(){
//your event function
});
答案 1 :(得分:7)
根据the documentation,自{1.7}以来.live()
已被弃用,而1.9中的已删除。
如果可用,您可能需要降级jQuery或使用更新版本的验证插件。
答案 2 :(得分:4)
.live()已删除
.live()方法自jQuery 1.7以来已被弃用,并已在1.9中删除。我们建议升级代码以改为使用.on()方法。
完全匹配
$("a.foo").live("click", fn)
你应该写
$(document).on("click", "a.foo", fn).
有关详细信息,请参阅.on() documentation。与此同时,jQuery Migrate插件还可用于恢复.live()功能。
答案 3 :(得分:1)
有一个迁移库可以帮助您在升级时从以前版本的jQuery过渡:jQuery migrate plugin。你需要在jQuery之后将它包含在你的源代码中。来自jQuery网站:
jQuery Migrate插件的未压缩开发版本包括控制台日志输出,以便在使用特定的已弃用和/或删除的功能时发出警告。这使其成为用于查找和修复现有jQuery代码和插件中的问题的迁移调试工具。它可以用于jQuery核心版本的诊断,一直到1.6.4。
插件的压缩版本不会生成任何日志输出,并且可以在需要jQuery 1.9或更高版本时在生产站点上使用,但也必须使用较旧的不兼容的jQuery代码或插件。理想情况下,这只会被用作短期解决方案,但这是您做出的决定。