【问题标题】:How to load jQuery dynamically with Rails?如何使用 Rails 动态加载 jQuery?
【发布时间】:2010-07-14 00:46:33
【问题描述】:

我有一个页面,我在其中动态加载部分(包含表单)。

然后你点击一个按钮,通过 jQuery 我做一个获取,获取表单,然后我更改一个 div 的 html。一切都很好。

问题是我有一些我在部分内联添加的 javascript,我想删除它。所以在我的部分我做了类似的东西:

<% content_for :header %>
 <%= javascript_include_tag 'myscript' %>
<%end%>

确定在我的布局中,我有 yield 标头。实际上我可以看到我的脚本被包括在内,但$(function(){}); 的内容从未被执行。关于它的任何提示?有什么更好的方法吗?我想将我的 JavaScript 移动到外部 js 文件,但目前我找不到一个好方法。

【问题讨论】:

  • 你的yield :header和它的周围是什么样子的,可能是加载顺序的问题。
  • my yield :header 在顶部,在 标签内。因此,当您单击按钮以打开带有我的表单的对话框时,它应该在具有 $(function(){}); 的位置添加 javascript;加载表单时应该执行的代码...

标签: javascript jquery ruby-on-rails


【解决方案1】:

我最近有一个非常相似的问题,只是我试图加载 jQuery 本身。答案可能对您有所帮助:Load jQuery in a js, then execute a script that depends on it

【讨论】:

    【解决方案2】:

    改变

    <% content_for :header %>
     <%= javascript_include_tag 'myscript' %>
    <%end%>
    

    收件人(注意 content_for 中的“do”)

    <% content_for :header do %>
     <%= javascript_include_tag 'myscript' %>
    <%end%>
    

    要做的是创建构建器,所以我认为在您没有将 [script src=] 标签添加到 [head] 之前

    http://guides.rubyonrails.org/layouts_and_rendering.html#using-content-for

    【讨论】:

    • 它会给我一个错误,或者我在那里写的脚本不可用.. 无论如何谢谢
    • 好的,如果您可以发布我们可以诊断的非工作 HTML/脚本页面的示例。我认为您通过 File.open 将 javascript 读取和写入 HTML 是一个糟糕的选择
    • 我一直按照 Jess 的建议去做。我们将所有的 JS 文件放在单独的 JS 文件中,以这种方式包含在 head 部分中,或者包含在包裹在 CDATA 块中的页面中。
    【解决方案3】:

    您是否同时使用 rails 和 Jquery 的原型。如果您同时包含两者,则 Jquery 功能将无法运行。请检查或让我知道是否有任何其他问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-11
      相关资源
      最近更新 更多