0

我有一个Rails 4应用程序。我在app/assets/javascripts/a.js中定义变量var a = 1。然后,我想在app/assets/javascripts/b.js中使用该变量,但每当我在b.js中使用a时,都表示它未定义。为什么? 谢谢。Rails资源中的Javascript变量

+2

如果你看看你的页面的源代码

使用window.classie相反,包括什么样的顺序这两个文件?假设两者都被合并到你的application.js中,我会通过浏览器的“查看源代码”选项打开该文档,并确保'a'在'b.js'中被引用之前真正被定义。 – ConnorCMcKee

回答

1

确保a.js b.js之前,需要:

//= require a 
//= require b 

如果使用require_tree .文件将按照字母顺序(在你的榜样工程:A,B)被要求

编辑:之前没有注意到,但@ConnorCMcKee在我之前的评论中回答。

+0

感谢您的回复。我做了你所说的('//在'//需要b'之前需要a''),但它没有解决问题。这两个文件是https://raw.githubusercontent.com/IronSummitMedia/startbootstrap-agency/gh-pages/js/classie.js和https://raw.githubusercontent.com/IronSummitMedia/startbootstrap-agency/gh-pages/ js/cbpAnimatedHeader.js,并在第30行中抱怨说“classie”没有被定义。 – user2725109

+0

JS并不是我的强项,但在我看来'classie'被定义在一个匿名函数(你传递'window'到的那个函数)内,所以它在这个范围之外是不可见的。尝试在这个函数之外定义一个变量,看看是否是这个问题。 – Leito

1

为@leito说你的变量是当地的一个,需要声明的全局的var classie