2012-07-20 147 views
1

例如,这样做的:如何在另一个完成后触发原型事件?

new Effect.Move('agrupador', { x: -100, y: 0, mode: 'relative' }); 
Element.setStyle('agrupador', {left: '0px' }); 

左侧位置留在元件移动之前施加,但我想相反。

有没有办法做到这一点?

PD:我会燃烧原型,我保证。

回答

2

这里有一个小提琴:

http://jsfiddle.net/uF9Dh/

new Effect.Move('agrupador', { 
    x: -100, 
    y: 0, 
    mode: 'relative', 
    afterFinish: function() { 
     Element.setStyle('agrupador', {left: '0px' }); 
    } 
}); 
​ 

此举的效果是异步的。当你拨打new Effect.Move()时,你正在设置一些事情在一秒钟内发生。在您发布的代码中,您在实例化效果后将left属性设置为0px未在效果完成后设置。为此目的有一个afterFinish回调。您可以查看其他可用的Scriptaculous效果回调here

顺便说一句 - 这个问题不是Prototype或Scriptaculous特定的,而是Javascript中异步操作的工作方式。

相关问题