ruby on rails 3 - rails3-jquery-autocomplete: Javascript Typ



Rails 3.2.11

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

类型错误:"未定义"不是函数(计算"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 选项似乎无关紧要,无论哪种方式都无法解决问题。我没有对自动完成轨道进行任何更改.js

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

是的,事实证明我有一个错误的javascript_include_tag加载了另一个jquery副本。这就是问题所在

我相信

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

  • 将 rails3-jquery-autocomplete 升级到最新版本(从 1.0.9 升级到 1.0.11,当我在 github 的 rails3-jquery-autocomplete 的 Changelog 中看到:"如果可能,请使用 jQuery .on() 而不是 .live()"
  • 删除了可能冗余或冲突的 jQuery 包含
  • 重新排序的包含,特别是将下划线放在自动完成轨道之后.js
  • 缓存和已编译资产的完全停止和清除

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

相关内容

  • 没有找到相关文章

最新更新