Right, thanks! Using pushStack seems ok, it's still chainable and keeps the selector state, while still being at least twice faster.
http://dev.jquery.com/ticket/4262 http://jquery.nodnod.net/cases/177/run cheers, - ricardo On Feb 26, 11:28 am, John Resig <[email protected]> wrote: > Well, first I would argue that the two are not equivalent. > > $($(...)[x]) doesn't maintain the stack. You can no longer do: > $(...).eq(1).addClass("test").end().appendTo("#foo"); > $($(...)[x]) doesn't maintain the internal selector state for plugins. > For example if you checked $(...).eq(1).selector you'd see: ".slice(1, > 2)" > > So, with that in mind, if there were ways to maintain that > functionality and still get a performance speed-up, I'd definitely be > open to it. > > --John > > On Wed, Feb 25, 2009 at 11:41 PM, Ricardo Tomasi <[email protected]> > wrote: > > > Creating two jQuery objects + a lookup $( $(...)[x] ) is faster than a > > simple $(...).eq(x). That doesn't make much sense. > > > Currently the eq function looks like this: > > eq: function( i ) { > > return this.slice( i, +i + 1 ); > > }, > > > Are there any downsides to changing it to this (object unique IDs, > > chaining)? > > > eq: function( i ) { > > return jQuery(this[i]); > > }, > > > That offers a 25% to 40% speed improvement across all browsers. > >http://jquery.nodnod.net/cases/177 > > > cheers, > > - ricardo --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
