2010-07-13 73 views
0

我有一个页面,其中我动态地加载了一个部分(包含一个表单)。如何使用Rails动态加载jQuery?

所以之后,你点击一个按钮,通过jQuery我做了一个get,获取表单,我改变了div的html。一切都很好。

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

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

肯定在我的布局我有yield头。其实我可以看到我的脚本被包含在内,但$(function(){});的内容从未执行过。有关它的任何提示?任何更好的方法来做到这一点?我想把我的JavaScript移动到外部的js文件,但现在,我找不到一个好的方法来做到这一点。

+0

你的'yield:header'和它的周围环境是什么样子,或许这是一个加载顺序的问题。 – jigfox 2010-07-13 13:34:34

+0

我的收益率:标题在顶部,在标签内。所以当你点击按钮来打开一个对话框时,它应该在其中包含$(function(){});应该在表单加载时执行的代码... – 2010-07-13 13:47:57

回答

0

您是否同时使用rails和jquery的原型。如果您包含两者,那么jquery函数将不会运行。请检查或让我知道是否有其他问题。

1

变化

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

要(注意 '' 在content_for)

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

溶解氧是创建建设者,所以我觉得前您没有将[script src =]标记添加到您的[head]

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

+0

它会给我一个错误或脚本wouldnt可用,因为我写在那里..无论如何感谢 – 2010-07-13 20:08:14

+0

好吧,如果你可以发布一个非工作的HTML /脚本页面,我们可以诊断。我认为你通过File.open阅读和写入JavaScript到HTML是一个糟糕的选择 – 2010-07-14 13:35:54

+0

我一直做什么杰斯推荐。我们将所有的JS文件以这种方式包含在head部分中的单独JS文件中,或者包含在包装在CDATA块中的页面中。 – 2010-09-22 04:18:54