Rails 4 turbo-link阻止jQuery脚本工作
我正在构建一个Rails 4应用程序,我有一些分散的js文件,我试图包括“rails方式”。我将jquery插件移动到/ vendor / assets / javascripts中,并更新了清单(application.js)以要求它们。当我在本地加载页面时,我看到它们正确显示。
但是,我从其中一个已编译的脚本中获得了不一致的行为。我有一个名为projects.js的特定于控制器的js文件,它通过以下方式在application.js中引用require_tree .:
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require bootstrap.min
//= require jquery.form.min
//= require_tree .
我看到文件被正确包含,并且它的工作时间有一半。另一半时间,projects.js中的东西似乎没有做任何事情(它主要是jquery动画和一些ajax请求)。当它不起作用时,我会点击按钮几次,什么都不会发生,然后我会抛出这个错误:
Uncaught TypeError: Cannot read property 'position' of null
turbolinks.js?body=1:75
当脚本处于各个视图(错误的方式)时,这种情况从未发生过,所以我很确定问题不在于我的javascript代码。另一个可能相关的细节是projects.js中的东西被包装在一个$(document).ready(function(){。此外,我正在开发模式下进行测试,因此javascripts和css不会被资产管道组合。
知道这里发生了什么吗?我是Rails的新手,但我已尽力遵守所有惯例。
更新!
当我的项目脚本不起作用时,它是可预测的。第一页加载每次都有效。然后我点击一个链接到一个使用我的project.js行为的新页面,第二个页面永远不会工作。我点击几次,最终抛出上面的错误。我仍然不确定为什么,但我怀疑这与涡轮连接有关。
ITMISS
相关分类