Bea*_*eau 16 javascript ruby-on-rails coffeescript
我想做的事似乎应该很简单,但出于某种原因让我望而却步.我想在我的tasks.js文件中添加一个click事件,如下所示:
$ ->
$('.cancel_task').click ->
$('#task_form').toggle
Run Code Online (Sandbox Code Playgroud)
这表示为:
(function() {
$(function() {
return $('.cancel_task').click(function() {
return $('#task_form').toggle;
});
});
}).call(this);
Run Code Online (Sandbox Code Playgroud)
我想要的只是:
$('.cancel_task').click(function()
{
$('#task_form').toggle();
});
Run Code Online (Sandbox Code Playgroud)
我如何使用coffescript和rails 3.1堆栈实现这一目标?
Tra*_*vis 17
咖啡应该包含你在有限范围内所做的一切,这样你就不会用全局变量来填充世界.这是有用的,除非你有,不要忽略这一点.在顶层,您可以使用this.something = "value".
现在你的代码不起作用,因为函数调用在没有参数时需要一个paren.这将使两个剪辑 - 它在功能上相同.函数是JavaScript中的变量,因此它假设您想要返回该函数而不是没有parens的结果.
$ ->
$('.cancel_task').click ->
$('#task_form').toggle()
Run Code Online (Sandbox Code Playgroud)
最后,Coffee函数始终返回函数的最后一个值.这就是它的工作原理.所以不要担心return语句,你可以随时忽略结果.
您发布的第二个片段是 的正确输出coffee,并且您发布的第二个和最后一个片段(实际上)在功能上是等效的。coffee如果你愿意,你可以通过使用's选项(这是有文档记录的)来摆脱顶级闭包,--bare但否则你不应该担心 CoffeeScript 的输出,除非它给你带来了问题。
| 归档时间: |
|
| 查看次数: |
21585 次 |
| 最近记录: |