2011-05-22 46 views
0

我使用uploadify的回形针,我能够得到它工作正常。我也在使用一些AJAX,因此有几个提交按钮不会触发整个页面的重新加载。它之前工作正常,现在已停止工作(日志显示没有调用js.erb)。我的javascript的顺序包括标签的事项,我不明白为什么

这是我在我的应用程序:

[[email protected]]$ l public/javascripts/ 
total 728 
[email protected] 1 remi staff  148 May 17 08:01 application.js 
[email protected] 1 remi staff 34787 May 17 08:01 controls.js 
[email protected] 1 remi staff 31056 May 17 08:01 dragdrop.js 
[email protected] 1 remi staff 38467 May 17 08:01 effects.js 
[email protected] 1 remi staff 72328 May 22 10:50 jquery-1.4.2.js 
[email protected] 1 remi staff 162353 May 17 08:01 prototype.js 
[email protected] 1 remi staff 5850 May 17 08:01 rails.js 
[email protected] 1 remi staff 10220 May 17 08:01 swfobject.js 
drwxr-xr-x 5 remi staff  170 May 22 10:38 uploadify 

而且我注意到,JavaScript的顺序包括标签有差别。当我首先包含jquery时,uploadify不起作用,但ajax正常工作。

<%= javascript_include_tag "jquery-1.4.2.js" %> 
    <%= javascript_include_tag :defaults %> 

当我改变它,然后uploadify的作品,但点击我的AJAX按钮重新加载页面:

<%= javascript_include_tag :defaults %> 
    <%= javascript_include_tag "jquery-1.4.2.js" %> 

我还是新来这个,你可以点我某种解释?

回答

1

我想jQuery和Prototype正在为$而战。

您应该在您的应用中设置jquery-rails,以便Rails将依赖您在其他地方使用的框架。

参见参考文献here

+0

谢谢,这是问题所在。下面的脚本解决了我的问题(在这里找到:http://www.alfajango.com/blog/rails-prototype-to-jquery/) '' – RaySF 2011-05-24 22:57:50

2

JavaScript文件按“外观顺序”加载。您需要按照您希望它们与其他JavaScript文件一起使用的方式来包含它们。

例如:

<script> 
    // I need some stuff written in script1.js 
</script> 
<script src="script1.js"></script> 

就不行,因为你需要script1.js你的东西之前加载。

这就是为什么JavaScript库(如jQuery或Prototype)必须首先加载(顶部包含内容)的原因。这就是为什么在jQuery之前加载AJAX的东西不起作用。

+0

对不起,语法,我是法语:D – 2011-05-23 01:19:36

+0

好吧,我明白了。在那种情况下,我应该摆脱一切不是jQuery并重写我的AJAX机制? – RaySF 2011-05-23 15:34:38

+0

nono,只需将jQuery放在你的内含物上:) – 2011-05-24 00:34:21

相关问题