It seems that the tricky part is that the hide() function (as in all
animation functions) use a setInterval, but return the "this" object
immediately.
Ohhh. I have an idea.
What if the wait() function set a flag in the object saying this object is
waiting for an animation to finish.
Then, any subsequent jQuery.fn methods that are called get added to a queue
to be executed after the animation is finished.
Once the animation is done, the wait flag is turned off and jQuery.fn
methods are executed immediately as usual.
So it would look like this:
jQuery("div").hide("slow")
.wait()
.addClass("done")
.find("span")
.addClass("done")
.end()
.show("slow")
.wait()
.removeClass("done")
.find("span")
.removeClass("done");
JK
-----Original Message-----
From: [email protected] [mailto:[EMAIL PROTECTED] On
Behalf Of nikomomo
Sent: Monday, October 20, 2008 1:01 AM
To: jQuery Development
Subject: [jquery-dev] Re: Ultra-Chaining with jQuery
First, you can do that with the callback parameter.
jQuery("div").hide("slow")
.wait()
.addClass("done")
.find("span")
.addClass("done")
.end()
.show("slow", function() {
$(this).removeClass("done");
})
But to create a wait() function, I think you have to create a lock/
semaphore (a simple counter), incremented in jQuery.anime (or anything
that create a timer callback?), decremented at the end of the anime,
and tested in the wait() function.
On 20 oct, 00:29, "Jeffrey Kretz" <[EMAIL PROTECTED]> wrote:
> That's an interesting idea -- personally I like this syntax a lot.
>
> But because javascript isn't a true multithreading environment, I wonder
if
> this would be possible at all.
>
> It's not like the wait() function can detect for the existence of an
> animation, pause execution until the animation is done, and only then
return
> the "this" object.
>
> Does anyone know if there's a way to create such behavior?
>
> JK
>
> -----Original Message-----
> From: [email protected] [mailto:[EMAIL PROTECTED] On
>
> Behalf Of xwisdom
> Sent: Sunday, October 19, 2008 12:43 PM
> To: jQuery Development
> Subject: [jquery-dev] RE: Ultra-Chaining with jQuery
>
> Sorry Guys but I could not find the thread mentioned on John's
> website:http://ejohn.org/blog/ultra-chaining-with-jquery/
>
> Anyway, the chaining system looks ok but rather than using a chain()
> metod how about using a wait() method that would block or process
> succeeding calls after the preceding call has been completed:
>
> jQuery("div").hide("slow")
> .wait()
> .addClass("done")
> .find("span")
> .addClass("done")
> .end()
> .show("slow")
> .wait()
> .removeClass("done")
>
> Just my 2cents
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"jQuery Development" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/jquery-dev?hl=en
-~----------~----~----~----~------~----~------~--~---