【问题标题】:Uncaught TypeError: Object [object Object] has no method 'live'未捕获的类型错误:对象 [object Object] 没有“live”方法
【发布时间】:2013-04-19 13:07:00
【问题描述】:

收到此错误:

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 不见了?

【问题讨论】:

  • 好吧,.live() 已经被弃用了一段时间;也许它现在真的消失了:)
  • 尝试将其更改为$(document).on('click', '.formError', function(){ ... });
  • .live 从 1.9 开始消失,我认为:jsfiddle.net/6mBsB

标签: jquery object jquery-validation-engine


【解决方案1】:

.live() 已移除

.live() 方法自 jQuery 1.7 起已被弃用,并在 1.9 中被删除。我们建议升级代码以改用 .on() 方法。

完全匹配

    $("a.foo").live("click", fn)

你应该写

    $(document).on("click", "a.foo", fn).

有关详细信息,请参阅.on() documentation。同时,jQuery Migrate 插件还可用于恢复 .live() 功能。

【讨论】:

    【解决方案2】:

    有一个迁移库可以帮助您在升级时从以前版本的 jQuery 进行转换:jQuery migrate plugin。您需要在 jQuery 之后将它包含在您的源代码中。来自 jQuery 网站:

    jQuery Migrate 插件的未压缩开发版本包括控制台日志输出,用于在使用特定的已弃用和/或删除的功能时发出警告。这使得它作为一种迁移调试工具很有价值,用于查找和修复现有 jQuery 代码和插件中的问题。它可以用于 jQuery 核心版本的诊断,一直到 1.6.4。

    插件的压缩版本不会产生任何日志输出,当需要 jQuery 1.9 或更高版本但也必须使用旧的不兼容的 jQuery 代码或插件时,可以在生产站点上使用。理想情况下,这只会用作短期解决方案,但这是您自己的决定。

    【讨论】:

      【解决方案3】:

      .live 在 jquery 1.9 中被删除

      参见文档:http://api.jquery.com/live/


      尝试改用.on

      $(document).on('click', '.formError', function(){ 
         //your event function
      });
      

      【讨论】:

      • 谢谢,但这只是破坏了它,现在我还有两个错误,它仍然不起作用。
      • @Francesca 它坏了什么?你能做一个jsfiddle吗?
      • @Francesca 这两个错误是否仅仅意味着它实际上已经超过了这一行并进一步发展为更多存在但与这一行无关的错误?修复一个错误后出现更多错误并不总是一件坏事,这只是意味着您有更多关于该问题的信息,当然还有更多错误需要修复。
      【解决方案4】:

      根据the documentation.live() 自 1.7 起已被弃用,并在 1.9 中删除

      如果可用的话,你要么必须降级 jQuery,要么使用更新版本的验证插件。

      【讨论】:

        猜你喜欢
        • 2014-01-08
        • 2012-12-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多