Clean up expando removal code - only try to delete the expando from an element if...
[jquery.git] / src / support.js
index 3e99772..c9bfdf0 100644 (file)
                // (WebKit defaults to false instead of true, IE too, if it's in an optgroup)
                optSelected: document.createElement("select").appendChild( document.createElement("option") ).selected,
 
+               parentNode: div.removeChild( div.appendChild( document.createElement("div") ) ).parentNode === null,
+
                // Will be defined later
+               deleteExpando: true,
+               checkClone: false,
                scriptEval: false,
                noCloneEvent: true,
                boxModel: null
                div.cloneNode(true).fireEvent("onclick");
        }
 
+       div = document.createElement("div");
+       div.innerHTML = "<input type='radio' name='radiotest' checked='checked'/>";
+
+       var fragment = document.createDocumentFragment();
+       fragment.appendChild( div.firstChild );
+
+       // WebKit doesn't clone checked state correctly in fragments
+       jQuery.support.checkClone = fragment.cloneNode(true).cloneNode(true).lastChild.checked;
+
        // Figure out if the W3C box model works as expected
        // document.body must exist before we can do this
-       // TODO: This timeout is temporary until I move ready into core.js.
        jQuery(function() {
                var div = document.createElement("div");
                div.style.width = div.style.paddingLeft = "1px";
                document.body.appendChild( div );
                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;
        });