2010-12-07 89 views
2

我希望能够做这样的事情:MooTools的影响链接

var fx = new Fx.Tween($('element'), { 
    duration: 500, 
    property: 'opacity', 
    transition: Fx.Transitions.Quart.easeOut, 
    link: 'chain' 
}); 

fx.start(0, 1) 
.chain(function() { 
    alert('foo'); 
}) 
.start(1, 0) 
.chain(function() { 
    alert('bar'); 
}); 

然后淡入#element,然后运行功能。但是,我不能得到它的第一个链(),这意味着#element不褪色回来后运行的第二次创业。

感谢您的帮助

+0

你可以做这样的事情http://www.jsfiddle.net/dimitar/FkCgY/(1.2.x +)你是在1.12偶然? – 2010-12-07 16:22:01

回答

4

事实证明,一些非常类似上面的代码可以工作,除非你需要以使用callChain()下一个“链接”到火。这是我现在使用什么:

var effect = new Fx.Tween($('element')); 
effect.start('opacity', 1) 
.chain(function() { /* Do stuff */ this.callChain();) 
.chain(function() { /* Do stuff */ this.callChain();) 
.chain(function() { /* Do stuff */ this.callChain();) 
.chain(function() { /* Do stuff */ this.callChain();) 
.chain(function() { /* Do stuff */); 

等。

这是因为链返回和Chain类的实例,而不是Fx.Tween的实例。我有点恼火,我需要使用callChain(),但它比嵌套函数的负载更好。