User internalKey instead of jQuery.expando. Fixes #10675

This commit is contained in:
Rick Waldron 2011-11-04 16:57:02 -04:00 committed by Dave Methvin
parent 262c32a70e
commit e086c22826

View File

@ -46,7 +46,7 @@ jQuery.extend({
// 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
id = isNode ? elem[ jQuery.expando ] : elem[ jQuery.expando ] && jQuery.expando,
id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey,
isEvents = name === "events";
// Avoid doing any more work than we need to when trying to get data on an
@ -59,9 +59,9 @@ jQuery.extend({
// Only DOM nodes need a new unique ID for each element since their data
// ends up in the global cache
if ( isNode ) {
elem[ jQuery.expando ] = id = ++jQuery.uuid;
elem[ internalKey ] = id = ++jQuery.uuid;
} else {
id = jQuery.expando;
id = internalKey;
}
}
@ -144,7 +144,7 @@ jQuery.extend({
cache = isNode ? jQuery.cache : elem,
// See jQuery.data for more information
id = isNode ? elem[ jQuery.expando ] : jQuery.expando;
id = isNode ? elem[ internalKey ] : internalKey;
// If there is already no cache entry for this object, there is no
// purpose in continuing
@ -214,11 +214,11 @@ jQuery.extend({
// nor does it have a removeAttribute function on Document nodes;
// we must handle all of these cases
if ( jQuery.support.deleteExpando ) {
delete elem[ jQuery.expando ];
delete elem[ internalKey ];
} else if ( elem.removeAttribute ) {
elem.removeAttribute( jQuery.expando );
elem.removeAttribute( internalKey );
} else {
elem[ jQuery.expando ] = null;
elem[ internalKey ] = null;
}
}
},