2012-04-29 37 views
0

奇怪的是,我無法關閉JavaScript文件中的javascript.js文件,這些文件不是assets/javascripts目錄中的application.js文件。舉例來說,如果我提出一個新的Rails 3.2.1應用程序,並插入以下內容:Rails 3.2.1資產目錄中的javascripts無法正常工作

index.html.erb:

<%= link_to "click", "javascript:", :onclick => "call_function();" %> 

和我的功能到一個JavaScript文件 「anyscript.js」:

function call_function() { 
    alert("hello2"); 
} 

只有javascript被放入application.js文件而不是其他任何地方時,alert函數纔會工作。我的application.js文件有require_tree。所以它應該加載目錄中的所有腳本。但是如果函數在一個單獨的文件中,它就不能工作。

我可以把所有的javascript放在應用程序文件中,但這顯然不理想。任何人遇到這個問題?

+0

你發現哪裏出了什麼問題?我有完全相同的問題... – rassom

回答

0

確保目錄中的腳本已正確加載,並且您的require_tree命令是正確的。在開發模式下,驗證相關腳本是否已加載。如果是,它會在鏈接被點擊時運行。只有理由不會是如果它超出範圍或未定義。

+0

感謝您的迴應 - 我如何驗證腳本加載?它顯示在瀏覽器的源代碼中,奇怪的是,當代碼在單獨的文件中時,似乎沒有任何代碼可以工作。 –

+0

在源文件中顯示應該是足夠的。嘗試在腳本中添加一條警報語句,以查看它在讀取時是否觸發。也可以嘗試從瀏覽器的JavaScript調試器中調用該函數。 – achinda99

+0

所以使用螢火蟲,我發現我的其他腳本沒有加載。我正在使用// = require_tree。包括我所有的js文件,但我想這不起作用。 –

0

好的,你確定anyscript.js文件包含在JS清單文件中,a.k.a application.js?

+1

只要正確使用require_tree,就不需要包含該文件。 – achinda99

+0

我有// = require_tree。那裏加載當前目錄中的所有文件。但是,部署時,文件內的代碼似乎不起作用。 –

+0

我不能正確使用require_tree嗎?它不應該只是// = require_tree。 –