我有rails 3.2.1并且为了测试JQuery UI,我希望显示一个DatePicker。因此,在“new.hmtl.erb”页面中,我添加了以下标记:
<p>Date: <input type="text" id="datepicker" /></p>
在project.js.coffee中(“新”视图页面由项目控制器呈现)我写道:
$( "#datepicker" ).datepicker();
为什么DatePicker不会出现?
在新页面的源代码中我已经:
<script src="/assets/projects.js?body=1" type="text/javascript"></script>
包含:
(function() {
$("#datepicker").datepicker();
}).call(this);
我必须加入一些宝石?在application.js中我有:
//= require jquery
//= require jquery_ujs
//= require_tree .
由于
答案 0 :(得分:1)
初始化UI对象的部分代码将转到案例new.html.erb
中的页面。你将它添加到底部:
<script>
$(document).ready(function() {
$( "#datepicker" ).datepicker();
});
</script>
这意味着当页面加载时,它将初始化您的输入对象。如果您需要通过许多页面提供此部分代码,请在application.html.erb
布局中添加此代码。有关可以在Rails指南页面上阅读的布局的更多信息。
修改强>
出于教育目的,这里还有其他评论:
如果您想将代码放入application.js
,您可以执行以下操作:
function setDatePicker() {
$( "#datepicker" ).datepicker();
}
然后再做
<script>
$(document).ready(function() {
setDatePicker();
});
</script>
如果您想要在加载application.js
时执行的代码,您只需将其放在那里而不将其包装在函数中(不建议)。它将在加载application.js时执行,但由于它可以在加载DOM之前触发(并且可能会),因此它将无法工作。所以总是使用jquery的.ready
。