まず、.coffee ファイルを変更した後は毎回 "bundle exec rake:precompile" を実行する必要がありますか? 通常、自動的に有効にならないことがわかりました。
フォームがあり、チェックボックスをオンにして 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 %>
チェックボックスをクリックまたはチェックすると、alert
s が機能しません。しかし、最初の行の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.
誰かが理由を教えて、これがどのように機能するか教えてもらえますか?
どうもありがとうございました。