我正在尝试使用jquery.datetimeentry,但是我是使用JavaScript的新手。如果我把:

$(function () {
    $.datetimeEntry.setDefaults({spinnerImage: 'spinnerDefault.png'});
    $('#defaultEntry').datetimeEntry();
    $('#dateEntry').datetimeEntry({datetimeFormat: 'O/D/Y'});
    $('#timeEntry').datetimeEntry({datetimeFormat: 'H:Ma'});
});


在我的application.js文件中,似乎它应该可以工作,但不能。
但是,如果我将以下内容放入表单(带有haml),则可以正常工作:

%script{:type=>"text/javascript"}
  $('#dateEntry').datetimeEntry({datetimeFormat: 'D/O/Y'});


我认为将它放在行中是一种不好的形式,因此我需要怎么做才能使其在我的application.js文件中起作用-还是应该将它放在其他地方?

最佳答案

将其包装在$(document).ready(function() { });

所以在这里:

$(document).ready(function() {
  $(function () {
    $.datetimeEntry.setDefaults({spinnerImage: 'spinnerDefault.png'});
    $('#defaultEntry').datetimeEntry();
    $('#dateEntry').datetimeEntry({datetimeFormat: 'O/D/Y'});
    $('#timeEntry').datetimeEntry({datetimeFormat: 'H:Ma'});
  });
});


顺便说一下,当必须使用内联javascript时,请使用HAML的:javascript挂钩。

:javascript
   alert('hello');

09-25 16:08