1

我在第一个 Rails 应用程序中遇到了 CoffeeScript 问题。我正在使用waitForImages jQuery 插件,它保存在一个名为waitforimages.jquery.js. Rails 自动创建home.js.coffee,我想在其中包含以下 jQuery 片段:

$('#fullbleed').waitForImages(function() {
    $(this).fadeIn(3000);
});

但是我将如何使用 CoffeeScript 符号来编写它呢?

更新

现在一切都很好,所以我想我会发布我的最终代码。问题之一是我没有在home.js.coffee之前waitForImages加载插件。

咖啡脚本:

$(document).ready -> $('#fullbleed').waitForImages -> $(@).fadeIn 3000

HTML:

<!DOCTYPE html>
<html>
<head>
  <title>Title</title>
  <script src="/assets/jquery.js?body=1" type="text/javascript"></script>
  <script src="/assets/jquery_ujs.js?body=1" type="text/javascript"></script>
  <script src="/assets/jquery.waitforimages.js?body=1" type="text/javascript"></script>
  <script src="/assets/home.js?body=1" type="text/javascript"></script>
</head>
<body>
...
</body>
</html>
4

3 回答 3

8

使用-> ...而不是function(){ ... }. 或者,您也可以this使用@.

$('#fullbleed').waitForImages ->
    $(@).fadeIn(3000)

如果你真的很喜欢保存字符,那么你也可以省略最后两个括号,得到:

$('#fullbleed').waitForImages -> $(@).fadeIn 3000
于 2012-11-18T15:38:54.763 回答
3

根据非常有用的http://js2coffee.org

$("#fullbleed").waitForImages ->
  $(this).fadeIn 3000
于 2012-11-18T15:39:11.920 回答
2
$('#fullbleed').waitForImages ->
  $(@).fadeIn 3000

甚至:

$('#fullbleed').waitForImages ->$(@).fadeIn 3000
于 2012-11-18T15:39:03.980 回答