Bug Tracker

Opened 11 years ago

Last modified 10 years ago

#10589 closed enhancement

Deprecate $.fn.data("events") - Replace with debugging extension — at Version 12

Reported by: gnarf Owned by:
Priority: high Milestone: 1.8
Component: data Version: git
Keywords: 1.8-discuss debug Cc:
Blocked by: Blocking:

Description (last modified by Rick Waldron)

This was discussed when we talked about removing the .data("events") code. We would like to discourage/deprecate this usage, and perhaps release something like $.fn.events() to replace it in a "debugging extension".

I'd like to suggest that we deprecate the current usage as soon as possible.

Change History (12)

comment:1 Changed 11 years ago by gnarf

Component: unfileddata
Keywords: 1.8-discuss debug added
Milestone: None1.8
Status: newopen

comment:2 Changed 11 years ago by gnarf

Description: modified (diff)

comment:3 Changed 11 years ago by dcherman

I use it for debugging, or at times for re-ordering already bound events if I need to bind something but have it fire first like this:

el.data( 'events' ).keydown.unshift( el.data( 'events' ).keydown.pop() );

comment:4 Changed 11 years ago by dcherman

Thought I just had - what about maintaining a list of bound handlers on the element's event fn?

Something like el.keydown.getHandlers() returns [ function() { ... }, $.noop, somefunc ]

Last edited 11 years ago by dcherman (previous) (diff)

comment:5 Changed 11 years ago by Rick Waldron

Priority: undecidedhigh

comment:6 Changed 11 years ago by dmethvin

Given that I changed some of the internal structure of the events object during 1.7, several of the plugins that dig into the information in detail don't work properly anyway. I didn't realize this until we started the discussion yesterday and some people joined that thread. However, I have yet to be convinced that the people using "events" that way should be using them.


The data isn't being hidden, just moved to its rightful place in the internal data object so that user data named "events" won't clobber it. So we aren't preventing anyone from being able to inspect events for debugging purposes, which seems to be the most common need.

Once we come to a resolution on this and other 1.8 initiatives I'd suggest a blog post with the results so we can prepare people for the move from jQuery(elem, "events") to jQuery._data(elem, "events") with the warning that it is not a public interface and subject to change.

comment:7 Changed 10 years ago by jzaefferer

Description: modified (diff)


comment:8 Changed 10 years ago by jaubourg


comment:9 Changed 10 years ago by dmethvin

Description: modified (diff)

+1, For access, let's stay with jQuery._data(elem, "events") so people understand it's not a documented interface.

comment:10 Changed 10 years ago by mikesherov

Description: modified (diff)


comment:11 Changed 10 years ago by timmywil


comment:12 Changed 10 years ago by Rick Waldron

Description: modified (diff)


Note: See TracTickets for help on using tickets.