我的Rails应用程序中有page1,page2和page3。
对于page2,我有一个特殊的javascript文件,其中包含一些jQuery .click事件。
我将文件包含到我的application.js //= require specialfile
特殊文件位于我的app / assets / javascripts / specialfile.js路径中。
我想通过如果我将从page1或page3转到page2,除非我刷新页面,否则特殊的js文件不起作用。它只有在我没有任何移动的情况下直接进入page2时才有效。
我尝试不在我的application.js管道中要求specialfile.js,并将其直接包含在我的page2中:<%= javascript_include_tag "specialfile" %>
。它没有用。我还尝试在那里添加像assets / javascript / specialfile.js ... app / assets / javascript / specialfile这样的完整路径,但没有运气。
我该怎么做?
我找到了类似的内容:<%= javascript_include_tag params[:controller] if AppName::Application.assets.find_asset("#{params[:controller]}.js") %>
但我不太了解。我怎么能指向特殊文件?
答案 0 :(得分:1)
默认情况下,Rails包含turbolinks gem,当您单击链接而不完整加载整个页面时,它会仅加载页面的body
。因为它不再对页面进行完全重新加载,所以&#34; ready&#34; document
上的事件未被触发。
您应该阅读turbolinks自述文件especially this bit on Events以获取更多信息,但一般来说,快速解决此问题的方法不是您的代码位于$(...
或$(document).ready
块中在:
$(document).on("ready page:load", ...