我在第一个Rails应用程序中遇到了CoffeeScript问题。我正在使用waitForImages jQuery插件,该插件保存在名为waitforimages.jquery.js
的单独文件中。 Rails自动创建home.js.coffee
,我想在其中包含以下jQuery代码段:
$('#fullbleed').waitForImages(function() {
$(this).fadeIn(3000);
});
但是我怎么用CoffeeScript表示法写这个呢?
更新
现在情况很好,所以我想我会发布我的最终代码。其中一个问题是我没有在 home.js.coffee之前加载waitForImages
插件。
CoffeeScript的:
$(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>
答案 0 :(得分:8)
使用-> ...
代替function(){ ... }
。或者,您也可以将this
与@
交换。
$('#fullbleed').waitForImages ->
$(@).fadeIn(3000)
如果你真的想保存字符,那么你也可以省略最后两个括号,并得到:
$('#fullbleed').waitForImages -> $(@).fadeIn 3000
答案 1 :(得分:3)
根据非常有用的http://js2coffee.org:
$("#fullbleed").waitForImages ->
$(this).fadeIn 3000
答案 2 :(得分:2)
$('#fullbleed').waitForImages ->
$(@).fadeIn 3000
甚至:
$('#fullbleed').waitForImages ->$(@).fadeIn 3000