Make sure .data("events") still works, for now.

This commit is contained in:
Dave Methvin 2011-10-26 22:56:26 -04:00
parent c2da514bce
commit c82dbf1928

View File

@ -32,7 +32,7 @@ jQuery.extend({
return; return;
} }
var thisCache, ret, var privateCache, thisCache, ret,
internalKey = jQuery.expando, internalKey = jQuery.expando,
getByName = typeof name === "string", getByName = typeof name === "string",
@ -46,11 +46,12 @@ jQuery.extend({
// Only defining an ID for JS objects if its cache already exists allows // Only defining an ID for JS objects if its cache already exists allows
// the code to shortcut on the same path as a DOM node with no cache // the code to shortcut on the same path as a DOM node with no cache
id = isNode ? elem[ jQuery.expando ] : elem[ jQuery.expando ] && jQuery.expando; id = isNode ? elem[ jQuery.expando ] : elem[ jQuery.expando ] && jQuery.expando,
isEvents = name === "events";
// Avoid doing any more work than we need to when trying to get data on an // Avoid doing any more work than we need to when trying to get data on an
// object that has no data at all // object that has no data at all
if ( (!id || !cache[id] || (!pvt && !cache[id].data)) && getByName && data === undefined ) { if ( (!id || !cache[id] || (!isEvents && !pvt && !cache[id].data)) && getByName && data === undefined ) {
return; return;
} }
@ -84,7 +85,7 @@ jQuery.extend({
} }
} }
thisCache = cache[ id ]; privateCache = thisCache = cache[ id ];
// jQuery data() is stored in a separate object inside the object's internal data // jQuery data() is stored in a separate object inside the object's internal data
// cache in order to avoid key collisions between internal data and user-defined // cache in order to avoid key collisions between internal data and user-defined
@ -103,8 +104,8 @@ jQuery.extend({
// Users should not attempt to inspect the internal events object using jQuery.data, // Users should not attempt to inspect the internal events object using jQuery.data,
// it is undocumented and subject to change. But does anyone listen? No. // it is undocumented and subject to change. But does anyone listen? No.
if ( name === "events" && !thisCache[name] ) { if ( isEvents && !thisCache[ name ] ) {
return thisCache[ internalKey ] && thisCache[ internalKey ].events; return privateCache.events;
} }
// Check for both converted-to-camel and non-converted data property names // Check for both converted-to-camel and non-converted data property names