From: Timmy Willison Date: Wed, 11 Sep 2013 19:29:15 +0000 (-0500) Subject: Correct the checkClone support test for Safari 5.1 and mobile webkits X-Git-Tag: 2.1.0-beta1~18 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=6d2c5c715aa53a13025fca6e8efa6533481c5e73;p=jquery.git Correct the checkClone support test for Safari 5.1 and mobile webkits --- diff --git a/src/manipulation/support.js b/src/manipulation/support.js index 434dd48fe..e077399b0 100644 --- a/src/manipulation/support.js +++ b/src/manipulation/support.js @@ -3,26 +3,23 @@ define([ ], function( support ){ (function () { - var input = document.createElement( "input" ), - fragment = document.createDocumentFragment(); + var input, + fragment = document.createDocumentFragment(), + div = fragment.appendChild( document.createElement( "div" ) ); - input.type = "checkbox"; + // #11217 - WebKit loses check when the name is after the checked attribute + div.innerHTML = ""; + + // Support: Safari 5.1, iOS 5.1, Android 4.x, Android 2.3 + // old WebKit doesn't clone checked state correctly in fragments + support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; // Make sure checked status is properly cloned // Support: IE9, IE10 + input = document.createElement("input"); + input.type = "checkbox"; input.checked = true; support.noCloneChecked = input.cloneNode( true ).checked; - - // #11217 - WebKit loses check when the name is after the checked attribute - input.checked = false; - input.setAttribute( "checked", "t" ); - input.setAttribute( "name", "t" ); - - fragment.appendChild( input ); - - // Support: iOS 5.1, Android 4.x, Android 2.3 - // old WebKit doesn't clone checked state correctly in fragments - support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked; })(); return support;