我正在尝试在 coffeescript :
中使用它 $(this).hide().each (index) ->
$(this).delay(index * 100).fadeIn 1000, arguments.callee
$(this).promise().done -> console.log 'hey trip'
在au naturale JS中同样的事情
$(this).hide().each(function(index) {
$(this).delay(index * 100).fadeIn(1000, arguments.callee)
});
$(this).promise().done(function() {console.log 'hey trip' });
我想在动画完成后执行控制台日志。但是这里的代码片段从不传递控制台消息(一般情况下),更不用说动画完成时了。
任何人都知道如何正确使用promise对象吗?
第二次尝试失败:
promise = new $.Deferred ->
promise.done -> console.log 'hey trip'
promise.resolve( $(this).hide().each (index) ->
$(this).delay(index * 100).fadeIn 3000, arguments.callee
)
第三次失败变异
dfd = $.Deferred ->
dfd.done(
$(this).hide().each (index) ->
$(this).delay(index * 100).fadeIn(3000, arguments.callee)
).done -> console.log 'hey trip'
第四次失败的变化
$.when(
$(this).hide().each (index) ->
$(this).delay(index * 100).fadeIn(3000, arguments.callee)
).then -> console.log 'hey trip'
答案 0 :(得分:2)
这是arguments.callee
的{{1}}参数。
如果你把它拿出来就行了......见http://jsfiddle.net/alnitak/9VQ48/