未捕获的TypeError:对象[object Object]没有方法'live'

时间:2013-04-25 14:54:50

标签: jquery object jquery-validation-engine

出现此错误:

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

4 个答案:

答案 0 :(得分:32)

在jquery 1.9中

.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代码或插件。理想情况下,这只会被用作短期解决方案,但这是您做出的决定。