Ruby on rails 如何使.coffee文件在rails中的窗体中的复选框上工作?
首先,我应该在每次修改.coffee文件后运行“bundle exec-rake:precompile”吗?我发现它通常不会自动生效Ruby on rails 如何使.coffee文件在rails中的窗体中的复选框上工作?,ruby-on-rails,Ruby On Rails,首先,我应该在每次修改.coffee文件后运行“bundle exec-rake:precompile”吗?我发现它通常不会自动生效 我有一个表单,我想选中复选框在网页上显示一些内容 我在app\assets\javascripts\testbeds.js.coffee中编写了一个文件,内容如下: alert "ddd" $(".checkbox1").click -> alert "aaa" $("#manually").click -> alert "aaa" $(
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 %>
当我单击或选中复选框时,警报
不起作用。但第一行的警报
“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.
有人能告诉我原因并教我怎么做吗
非常感谢。您可以在('change')上使用
。以下是普通jQuery中的JSFIDLE(非咖啡):
在咖啡里,应该是
$('input[type=checkbox]').on 'change', ->
alert(0)
可能出现的问题是,一旦您运行rake资产:本地预编译,它将专门为公共/资产之外的资产提供服务。如果要返回按需编译行为(这是您想要的),则需要删除该目录控制台中是否有错误?1:您不需要在开发环境中手动重新编译coffeescript文件,但必须为生产环境运行
rails资产:预编译
。@Yoshiji先生我知道,但lalameat post暗示这是在开发环境中的-也许lalameat意味着生产,但我对此表示怀疑。@Yoshiji先生更新了我的帖子,明确表示我指的是开发环境是的,这是开发环境,我总是在app/assets/application.js中查看它。我认为预编译应该只对生产环境生效(还需要对config.assets.precompile进行一些更改以包含该文件)。但也许有时候我看到修改并没有在developmentenv中自动生效。我不确定。那么我是否需要在每次修改后重新启动rais服务器?而且,像我在第一步中所做的步骤3这样的一些更改,它起了作用。无论如何都要保持警惕。我想是上膛了。但是对我发布的代码的更改没有起作用。
$('input[type=checkbox]').on 'change', ->
alert(0)