从 CoffeeScript 调用 JQuery 函数 slipUp 时出现问题
我正在尝试将以下 JS 片段转换为 CoffeeScript:
$(document).ready(function(){
window.setTimeout(function(){
$('#flash').slideUp('slow', function(){
$(this).remove();
})
}, 1000)
})
我尝试了以下方法:
$(document).ready ->
window.setTimeout ->
$('#flash').slideUp 'slow', (-> $(this).remove()), 1000
这导致了以下 JS 代码:
(function() {
$(document).ready(function() {
return window.setTimeout(function() {
return $('#flash').slideUp('slow', (function() {
return $(this).remove();
}), 1000);
});
});
}).call(this);
看起来与我非常相似,但它根本不起作用。该代码片段的目的是,在 ID 为 #flash 的 div 上执行幻灯片向上动画,并在动画完成后删除该元素。纯 JS 片段工作得很好,但我不明白,为什么编译后的 CS 不能完成它的工作,
我对 JavaScript 或 CoffeeScript 根本没有太多经验,所以我会很高兴在这里得到提示。
I am trying to convert the following JS snippet to CoffeeScript:
$(document).ready(function(){
window.setTimeout(function(){
$('#flash').slideUp('slow', function(){
$(this).remove();
})
}, 1000)
})
I tried this:
$(document).ready ->
window.setTimeout ->
$('#flash').slideUp 'slow', (-> $(this).remove()), 1000
which leads to the following JS code:
(function() {
$(document).ready(function() {
return window.setTimeout(function() {
return $('#flash').slideUp('slow', (function() {
return $(this).remove();
}), 1000);
});
});
}).call(this);
Looks pretty similar to me, but it simply does not work. The intention of the snippet is, to do a slideUp animation on the a div with the id #flash, and remove the element, when the animation is done. The pure JS Snippet works fine, but I don't get, why the compiled CS does not do it's job
I am not very experience with JavaScript or CoffeeScript at all, so I would be very happy vor a hint here.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您的原始代码与 CoffeeScript 等效
,相反,您将
1000
作为slideUp
函数的第三个参数。由于setTimeout
需要时间参数,因此什么也没有发生。请注意,我喜欢围绕
setTimeout
创建一个包装函数,为了可读性而交换两个参数:定义后,您可以编写
Your original code is equivalent to the CoffeeScript
Instead, you've made
1000
a third argument to theslideUp
function. SincesetTimeout
requires a time argument, nothing happens.Note that I like to make a wrapper function around
setTimeout
that swaps the two arguments for readability's sake:Once that's defined, you can write