【问题标题】:rails3-jquery-autocomplete: Javascript TypeErrorrails3-jquery-autocomplete:Javascript 类型错误
【发布时间】:2013-01-21 18:43:13
【问题描述】:

Rails 3.2.11

我按照此 gem 的说明操作:https://github.com/crowdint/rails3-jquery-autocomplete。当我加载我想要自动完成字段的页面时,Jquery、jquery-ui、autocomplete-rails.js 等都被加载了。但是,在加载页面时,我在错误控制台中得到了这个:

TypeError: 'undefined' is not a function (evalating 'this.live')

我解压了js文件,这个是引用的函数:

(function(jQuery)
{
  var self = null;
  jQuery.fn.railsAutocomplete = function() {
    return this.live('focus',function() {
      if (!this.railsAutoCompleter) {
        this.railsAutoCompleter = new jQuery.railsAutocomplete(this);
      }
    });
  };

有人知道发生了什么吗?由于我没有在任何地方使用 '$',所以 noConflict 选项似乎并不重要,而且无论哪种方式都不能解决问题。我没有对 autocomplete-rails.js 进行任何更改

奇怪的是,我发誓这在某些时候有效,但我终其一生都无法弄清楚是什么改变了它。

【问题讨论】:

  • 是的,原来我有一个错误的 javascript_include_tag 加载了另一个 jquery 副本。这就是问题

标签: javascript ruby-on-rails-3 jquery-autocomplete


【解决方案1】:

是的,原来我有一个错误的 javascript_include_tag 加载了另一个 jquery 副本。这就是问题

【讨论】:

    【解决方案2】:

    我相信原始发帖人自己的答案也是我解决方案的一部分。使用 rails 3.2.13、jquery 1.9.0 和 jquery-ui 1.9.2。更完整的我也:

    • 将 rails3-jquery-autocomplete 升级到最新版本(从 1.0.9 到 1.0.11,当我在 rails3-jquery-autocomplete at github 的更新日志中看到:“如果可能,请使用 jQuery .on() 而不是 .live()”时
    • 删除了可能冗余或冲突的 jquery 包含
    • 重新排序的包含,特别是在 autocomplete-rails 之后放置 underscore.js
    • 完全停止和清除缓存和编译资产

    在前 3 个步骤之后,损坏的行为仍然存在(在每个步骤之后,我只重新启动了服务器)。最后一步是出于懒惰,但值得庆幸的是,上述方法的结合奏效了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-29
      • 2013-03-02
      • 1970-01-01
      相关资源
      最近更新 更多