Rails:如何使用JQueryUI

时间:2013-01-08 09:46:18

标签: jquery ruby-on-rails jquery-ui

我有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 .

由于

1 个答案:

答案 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