2012-07-20 96 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中異步操作的工作方式。

相關問題