Hi Andrea. Nice solution. Using array instead of object is a nice speed boost (at least on Fx 3.5). However, I suppose that an _index will not be necessary in jQuery.
Honestly I consider that $.data() would be exactly as your $.proxy() (the simpler one). Now that $.data returns the data object of an element, it doesn't need to handle setting/getting values too. $.data(node)[name] = value; is even more concise then: $.data(node, name, value); Of course, although it would simplify the $.data() implementation (speed performances too) it would breaks compatibility with many existent plugins. However, $.data() in 1.4 will breaks it already... On Oct 15, 3:43 am, Andrea Giammarchi <andrea.giammar...@gmail.com> wrote: > Hi John. This expando and node object relations is something I am kinda > dealing with every day. > I have not read jQuery 1.4 solution yet but I wonder if my latest post, > created "for this occasion", could give jQuery some good advice/suggestion. > > http://webreflection.blogspot.com/2009/10/dom-node-proxy.html > > Regards > > On Wed, Oct 14, 2009 at 5:40 PM, John Resig <jere...@gmail.com> wrote: > > > Hi Mark - > > > This was intentional. We could no longer guarantee that an ID would be > > attached for an element at all times (which is what was done before). > > Additionally calling that method would attach an expando and object to > > an empty element - even if no data needed to be stored (which is bad). > > Almost universally the use of $.data(elem) was used to get at the > > entirety of an element's data collection - which is what is now > > returned from $.data(elem) instead. > > > Looking at the tabs code it looks like they're using it to generate a > > unique ID (but it's not clear as to why they need $.data for this - > > they could, just as easily, keep a global ID counter and assign it to > > the element if it doesn't have one, already. There's no need to attach > > an entire data object just to get at that information. > > > As it stands the next version of jQuery UI will require jQuery 1.4 so > > this is definitely one place where we could make that clean break. If > > it does become problematic, though (especially for other plugins), > > then we could look into ways of changing it. > > > --John > > > On Wed, Oct 14, 2009 at 10:24 AM, Mark Gibson <jollyt...@gmail.com> wrote: > > > > Hi, I've noticed that the behaviour of $.data() has changed in 1.4pre, > > > > $.data(elem) no longer returns the cache id, it returns all the data > > > items or null. > > > this will probably break a lot of code (already breaks jQuery UI Tabs) > > > > Is this intentional, or a bug? > > > > - Mark. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "jQuery Development" group. To post to this group, send email to jquery-dev@googlegroups.com To unsubscribe from this group, send email to jquery-dev+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/jquery-dev?hl=en -~----------~----~----~----~------~----~------~--~---