From e1b940d74824282fd3466d39a8ab574da4ef6fc5 Mon Sep 17 00:00:00 2001 From: John Resig Date: Sun, 17 Oct 2010 10:56:01 -0400 Subject: [PATCH] We removed deleteExpando after 1.4.2, for some reason. This caused problems with removeData() (no arguments). Fixes #7209. --- src/support.js | 10 ++++++++++ test/unit/data.js | 7 ++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/support.js b/src/support.js index c2ffa45f..b9c10c7a 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 81f5e61f..b0c9f3f8 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");