1
例如,這樣做的:如何在另一個完成後觸發原型事件?
new Effect.Move('agrupador', { x: -100, y: 0, mode: 'relative' });
Element.setStyle('agrupador', {left: '0px' });
左側位置留在元件移動之前施加,但我想相反。
有沒有辦法做到這一點?
PD:我會燃燒原型,我保證。
例如,這樣做的:如何在另一個完成後觸發原型事件?
new Effect.Move('agrupador', { x: -100, y: 0, mode: 'relative' });
Element.setStyle('agrupador', {left: '0px' });
左側位置留在元件移動之前施加,但我想相反。
有沒有辦法做到這一點?
PD:我會燃燒原型,我保證。
這裏有一個小提琴:
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中異步操作的工作方式。