我在第一个Rails应用程序中遇到CoffeeScript问题。我使用的是waitForImagesjQuery插件,它保存在一个名为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>
使用-> ...
而不是function(){ ... }
。也可以选择将this
与@
交换。
$('#fullbleed').waitForImages ->
$(@).fadeIn(3000)
如果你真的喜欢保存字符,那么你也可以省略最后两个括号,得到:
$('#fullbleed').waitForImages -> $(@).fadeIn 3000
根据非常有用的http://js2coffee.org:
$("#fullbleed").waitForImages ->
$(this).fadeIn 3000
$('#fullbleed').waitForImages ->
$(@).fadeIn 3000
甚至:
$('#fullbleed').waitForImages ->$(@).fadeIn 3000