From a6f3757d50f8be021505f4f7fa7201199e8b7f2d Mon Sep 17 00:00:00 2001 From: jeresig Date: Sat, 13 Feb 2010 06:57:58 -0500 Subject: [PATCH] Found a better detect for deleting an expando, added back in removeAttribute as it does work in IE. --- src/data.js | 5 ++++- src/manipulation.js | 5 ++++- src/support.js | 19 +++++++++---------- 3 files changed, 17 insertions(+), 12 deletions(-) diff --git a/src/data.js b/src/data.js index 0e243ca..b9986f5 100644 --- a/src/data.js +++ b/src/data.js @@ -80,7 +80,10 @@ jQuery.extend({ // Otherwise, we want to remove all of the element's data } else { if ( jQuery.support.deleteExpando ) { - delete elem[ expando ]; + delete elem[ jQuery.expando ]; + + } else if ( elem.removeAttribute ) { + elem.removeAttribute( jQuery.expando ); } // Completely remove the data cache diff --git a/src/manipulation.js b/src/manipulation.js index 4eb19ea..196f230 100644 --- a/src/manipulation.js +++ b/src/manipulation.js @@ -569,7 +569,10 @@ jQuery.extend({ } if ( deleteExpando ) { - delete elem[ expando ]; + delete elem[ jQuery.expando ]; + + } else if ( elem.removeAttribute ) { + elem.removeAttribute( jQuery.expando ); } delete cache[ id ]; diff --git a/src/support.js b/src/support.js index c9bfdf0..5821301 100644 --- a/src/support.js +++ b/src/support.js @@ -81,6 +81,15 @@ delete window[ id ]; } + // Test to see if it's possible to delete an expando from an element + // Fails in Internet Explorer + try { + delete script.test; + + } catch(e) { + jQuery.support.deleteExpando = false; + } + root.removeChild( script ); if ( div.attachEvent && div.fireEvent ) { @@ -112,16 +121,6 @@ jQuery.boxModel = jQuery.support.boxModel = div.offsetWidth === 2; document.body.removeChild( div ).style.display = 'none'; - // Test to see if it's possible to delete an expando from an element - // Fails in Internet Explorer - try { - div.test = 1; - delete doc.test; - - } catch(e) { - jQuery.support.deleteExpando = false; - } - div = null; }); -- 1.7.10.4