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");