0

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 .

ありがとう

4

1 に答える 1

1

あなたの UI オブジェクトを初期化するコードの一部は、あなたの場合にページに移動しますnew.html.erb。次のように下部に追加します。

<script>
  $(document).ready(function() {
    $( "#datepicker" ).datepicker();
  });
</script>

これは、ページが読み込まれると、入力オブジェクトが初期化されることを意味します。コードのこの部分を多くのページで使用できるようにする必要がある場合は、このコードをapplication.html.erbレイアウトに追加します。Rails Guideページで読むことができるレイアウトの詳細。

編集

教育目的で、ここに追加のコメントがあります: コードを入れたい場合は、次のようにapplication.jsすることができます:

function setDatePicker() {
  $( "#datepicker" ).datepicker();
}

そして、する

<script>
  $(document).ready(function() {
    setDatePicker();
  });
</script>

がロードされたときに実行されるコードが必要な場合application.jsは、関数でラップせずにそこに置くだけです (お勧めしません)。application.js が読み込まれると実行されますが、DOM が読み込まれる前にトリガーされる可能性があるため (おそらくそうなる可能性があるため)、機能しません。したがって、常に jquery を使用して.readyください。

于 2013-01-08T09:57:04.943 に答える