what about ...

$('foo').clone().injectAfter($('foo')).setStyle('position',
'absolute').set('morph', { onComplete: function()
{ this.element.destroy();}}).morph({ left: 500, opacity: 0, width:10,
height:5});

On 19 Sep., 04:40, dtipson <[EMAIL PROTECTED]> wrote:
> I'm just wondering what the safest/cleanest/fastest/right way is to
> completely destroy an element after an animation tween or morph
> finishes.  I'm basically cloning an input element, running an effect
> on the clone (pushing it rightwards while shrinking and fading it out,
> and then want it to be destroyed once its no longer visible (i.e., the
> end of the effect)).  I know that chaining is the preferred way to
> schedule these sorts of events, but for some reason when I try to set
> it up, the animation is jerky and slow.  Here's an example of what I'm
> doing, with a snippet taken from inside the onchange event function
> that I'm adding to all input elements in a form:
>
>                                 var clone = this.clone();
>                                 clone.setStyle('position', 'absolute');
>                                 clone.injectAfter(this);
>                                 clone.morph({
>                                         left: 500,
>                                         opacity: 0,
>                                         width:10,
>                                         height:5,
>                                 
> }).get('morph').chain(function(){clone.destroy();});
>
> I can also simply use an anonymous function on a delay that destroys
> the clone after a reasonable amount of time.  This method works
> perfectly... but it feels sort of cheap.
>
> Would the absolute best way to do what I want to be to extend the
> morph class so that it has an option to automatically destroy an
> element on completion of the morph? I tried using the onComplete
> function in the above code, but for some reason it destroys the
> element before the animation finishes.

Reply via email to