JavaScript到CoffeeScript错误
我有一个功能,可以在单击最后一个复选框时切换所有其他复选框 它可以在普通JavaScript中完美工作:JavaScript到CoffeeScript错误,javascript,coffeescript,Javascript,Coffeescript,我有一个功能,可以在单击最后一个复选框时切换所有其他复选框 它可以在普通JavaScript中完美工作: $(document).ready(function() { $('#manage').click(function(event) { if(this.checked) { $('.checkbox:checkbox').each(function() { this.checked = true;
$(document).ready(function() {
$('#manage').click(function(event) {
if(this.checked) {
$('.checkbox:checkbox').each(function() {
this.checked = true;
});
}
if(!this.checked) {
$('.checkbox:checkbox').each(function() {
this.checked = false;
});
}
});
});
但是,当我编译成CoffeeScript(使用)时,当复选框被关闭时,功能中断:
$(document).ready ->
$("#manage").click (event) ->
if @checked
$(".checkbox:checkbox").each ->
@checked = true
unless @checked
$(".checkbox:checkbox").each ->
@checked = false
我认为这是因为每个循环的第二个循环只运行一次
怎么了 问题如下。在转换后的脚本中,CoffeeScript创建的隐式返回为
false
unless @checked
$(".checkbox:checkbox").each () ->
@checked = false
# here false is returned stopping the each function from continuing
因此,解决方案是在函数末尾添加true
unless @checked
$(".checkbox:checkbox").each () ->
@checked = false
true
这表明它在起作用。问题如下。在转换后的脚本中,CoffeeScript创建的隐式返回为
false
unless @checked
$(".checkbox:checkbox").each () ->
@checked = false
# here false is returned stopping the each function from continuing
因此,解决方案是在函数末尾添加true
unless @checked
$(".checkbox:checkbox").each () ->
@checked = false
true
这表明它在起作用。发生了两件事:
@checked=true
更改为返回此值。checked=true代码>
each()
中的函数返回false
,则它不会继续@checked = false
对这样的事情:
@checked = false
return true
发生了两件事:
@checked=true
更改为返回此值。checked=true代码>
each()
中的函数返回false
,则它不会继续@checked = false
对这样的事情:
@checked = false
return true