我討厭甚至問這個,因爲我確定它很明顯,但我花了幾個小時尋找答案,找不到一個答案。Javascript加載在application.js文件中,但在Rails 3.2中不起作用
我有一個簡單的JavaScript(jQuery)代碼,它使用'滑動'功能。我在表單部分使用它來顯示或隱藏基於選擇的字段。如果我把代碼直接放到表單中,它就可以很好地工作。如果我將它放到assets/javascript文件夾中,它將包含在application.js文件中,但不起作用。
對於測試,我還放入了一個JavaScript警報,以查看它是否正在加載,並且警報觸發。我無法想象出我的生活。
這裏是位於我的應用程序/資產/ JavaScript的/ form.js的JavaScript:
$('#Postponement').change(function() {
if ($("#NewWeddingDate").is(":hidden")) {
$("#NewWeddingDate").show("slow");
} else {
$("#NewWeddingDate").slideUp();
}
})
$(function(){
alert('got to application.js!');
})
這是相關表格的代碼(我使用Formtastic):
<div id='Postponement' >
<%= f.input :Postponement, :label => "Will the wedding be postponed?", :input_html => { :id => 'Postponement' }, :as => :select, :include_blank => false, :collection => ['Yes', 'No'], :selected => 'Yes' %> <br />
</div>
<div id = 'NewWeddingDate' >
<%= f.input :NewWeddingDate, :label => "The new wedding date is:", :input_html => { :id => 'NewWeddingDate' }, :as => :date_select, :start_month => Time.now.month, :start_year => Time.now.year, :end_year => Time.now.year + 10, :order => [:month, :year] %><br />
</div>
我application.html.erb包含<%= javascript_include_tag "application" %>
,如果我直接將該JavaScript代碼添加到_form.html.erb文件中,它可以正常工作。我絕對是這個東西的新手,所以我相信這是明顯的。我可以把代碼留在_form.html.erb中,但我試圖用正確的方式(Rails)來完成。任何和所有的幫助,將不勝感激。
就是這樣!非常感謝。 因此,向前邁進,我是否需要將所有的javascript包裝在這樣的函數中以確保它們最後被加載?我的印象是,通過資產管道,application.js將首先加載以避免這種確切類型的問題。 再次感謝。 – 2013-03-28 13:11:18