如何在另一个完成后触发原型事件?
问题描述:
例如,这样做的:如何在另一个完成后触发原型事件?
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中异步操作的工作方式。