1
  1. まず、.coffee ファイルを変更した後は毎回 "bundle exec rake:precompile" を実行する必要がありますか? 通常、自動的に有効にならないことがわかりました。

  2. フォームがあり、チェックボックスをオンにして Web ページに何かを表示したい。

にファイルを書きましapp\assets\javascripts\testbeds.js.coffeeた。内容は次のとおりです。

alert "ddd"

$(".checkbox1").click ->
  alert "aaa"

$("#manually").click ->
  alert "aaa"

$("#manually").change ->
  alert "aaa"

$('input[type=checkbox]').on 'change', ->
  alert(0)

そしてビューファイル: app\views\testbeds\edit.html.erb:

<h1>Editing testbed</h1>

<%= render 'form' %>
<%= link_to 'Show', @testbed %> |
<%= link_to 'Back', testbeds_path %>

の内容app\views\testbeds\_form.html.erbは 1 つのチェックボックスのみです。

<%= form_for(@testbed) do |f| %>
  <% if @testbed.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@testbed.errors.count, "error") %> prohibited this testbed from being saved:</h2>

      <ul>
      <% @testbed.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
      </ul>
    </div>
  <% end %>

  <div class="field">
    <%= f.label :configuration_id %><br />
    <% selected = (@configuration.nil?) ? nil : @configuration.id %>
    <%= f.select :configuration_id, options_from_collection_for_select(@configurations, 'id', 'name', selected) %>
    <label class="checkbox1">
     <input id="manually" type="checkbox" name="manually" value="manually">
    </label>

      <label id="label"> Choose resources manually</label>
  </div>
  <div id="resources">
  </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

チェックボックスをクリックまたはチェックすると、alerts が機能しません。しかし、最初の行のalert「ddd」は正しく表示されます。

コンパイルされた application.js の内容は次のようになります。「(jQuery);」かどうかはわかりません 前の関数またはこの関数に属している場合は、添付するだけです。

  }

})( jQuery );
(function() {

  alert("ddd");

  $(".checkbox1").click(function() {
    return alert("aaa");
  });

  $("#manually").click(function() {
    return alert("aaa");
  });

  $("#manually").change(function() {
    return alert("aaa");
  });

  $('input[type=checkbox]').on('change', function() {
    return alert(0);
  });

}).call(this);
// This is a manifest file that'll be compiled into application.js, which will include all the files
// listed below.

誰かが理由を教えて、これがどのように機能するか教えてもらえますか?

どうもありがとうございました。

4

2 に答える 2