Jquery Javascript加载到application.js文件中,但不加载';t在Rails 3.2中工作

Jquery Javascript加载到application.js文件中,但不加载';t在Rails 3.2中工作,jquery,ruby-on-rails-3,Jquery,Ruby On Rails 3,我甚至不想问这个问题,因为我确信这是显而易见的,但我花了几个小时寻找答案,却找不到答案 我有一个简单的javascript(jquery)代码,它使用“slideup”函数。我在表单部分中使用它来显示或隐藏基于选择的字段。如果我把代码直接放到表单中,它就可以完美地工作。如果我把它放在assets/javascript文件夹中,它会包含在application.js文件中,但不起作用 为了进行测试,我还加入了一个javascript警报,以查看它是否正在加载,并且是否正在加载,警报将触发。我一辈子

我甚至不想问这个问题,因为我确信这是显而易见的,但我花了几个小时寻找答案,却找不到答案

我有一个简单的javascript(jquery)代码,它使用“slideup”函数。我在表单部分中使用它来显示或隐藏基于选择的字段。如果我把代码直接放到表单中,它就可以完美地工作。如果我把它放在assets/javascript文件夹中,它会包含在application.js文件中,但不起作用

为了进行测试,我还加入了一个javascript警报,以查看它是否正在加载,并且是否正在加载,警报将触发。我一辈子都搞不懂

下面是我的app/assets/javascript/form.js中的javascript:

$('#Postponement').change(function () {
    if ($("#NewWeddingDate").is(":hidden")) {
      $("#NewWeddingDate").show("slow");
    } else {
      $("#NewWeddingDate").slideUp();
    }
  })


$(function(){
  alert('got to application.js!');
})
这是相关的表单代码(我使用的是Formtastic):


“婚礼会延期吗?”,:input_html=>{:id=>'delayment'},:as=>:select,:include_blank=>false,:collection=>['Yes','No'],:selected=>'Yes'>
“新的婚礼日期是:”,: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]>

我的application.html.erb包含
,如果我将javascript代码直接添加到_form.html.erb文件中,它就可以正常工作。我绝对是这方面的新手,所以我相信这是显而易见的。我只需将代码保留在_form.html.erb中就可以了,但我正在尝试以正确的方式(Rails)进行操作。任何和所有的帮助都将不胜感激

尝试在加载文档后运行代码。现在,它可能是在延迟之前立即执行的,除非你把它放在部分表单中。例如:

$(function() {
    $('#Postponement').change(function () {
        if ($("#NewWeddingDate").is(":hidden")) {
          $("#NewWeddingDate").show("slow");
        } else {
          $("#NewWeddingDate").slideUp();
        }
    })
});

将函数放在
$()
中可以确保它运行。

就是这样!非常感谢你。那么,向前看,我是否需要将所有javascript封装在这样的函数中,以确保它们最后加载?我的印象是,对于资产管道,application.js将首先加载,以避免这种类型的问题。再次感谢。
$(function() {
    $('#Postponement').change(function () {
        if ($("#NewWeddingDate").is(":hidden")) {
          $("#NewWeddingDate").show("slow");
        } else {
          $("#NewWeddingDate").slideUp();
        }
    })
});