From: John Resig Date: Sun, 17 Oct 2010 14:56:01 +0000 (-0400) Subject: We removed deleteExpando after 1.4.2, for some reason. This caused problems with... X-Git-Tag: 1.4.4rc1~24 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=e1b940d74824282fd3466d39a8ab574da4ef6fc5;p=jquery.git We removed deleteExpando after 1.4.2, for some reason. This caused problems with removeData() (no arguments). Fixes #7209. --- diff --git a/src/support.js b/src/support.js index c2ffa45f2..b9c10c7a2 100644 --- a/src/support.js +++ b/src/support.js @@ -61,6 +61,7 @@ optSelected: opt.selected, // Will be defined later + deleteExpando: true, optDisabled: false, checkClone: false, scriptEval: false, @@ -91,6 +92,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 ) { diff --git a/test/unit/data.js b/test/unit/data.js index 81f5e61fa..b0c9f3f82 100644 --- a/test/unit/data.js +++ b/test/unit/data.js @@ -284,11 +284,16 @@ test(".data(Object)", function() { }); test("jQuery.removeData", function() { - expect(5); + expect(7); var div = jQuery("#foo")[0]; jQuery.data(div, "test", "testing"); jQuery.removeData(div, "test"); equals( jQuery.data(div, "test"), undefined, "Check removal of data" ); + + jQuery.data(div, "test2", "testing"); + jQuery.removeData( div ); + ok( !jQuery.data(div, "test2"), "Make sure that the data property no longer exists." ); + ok( !div[ jQuery.expando ], "Make sure the expando no longer exists, as well." ); var obj = {}; jQuery.data(obj, "test", "testing");