首先,每次修改 .coffee 文件后,是否应该运行“bundle exec rake:precompile”?我发现它通常不会自动生效。
我有一个表格,我想选中复选框以在网页上显示一些内容。
我在 中写了一个文件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
只有一个复选框:
<%= 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.
有人可以告诉我原因并教我这是如何工作的吗?
非常感谢你。