We maintain all of the element data (including events, etc.) in an internal data store. We attach a single expando to an element - whose name is randomly generated (this allows jQuery to, not only, co-exist with other libraries but also to coexist with other copies of jQuery, since there'll never be a collision with the name). I hope this helps to clear it up.