| @@ 5017-5058 (lines=42) @@ | ||
| 5014 | } |
|
| 5015 | ||
| 5016 | jQuery.extend({ |
|
| 5017 | clone: function( elem, dataAndEvents, deepDataAndEvents ) { |
|
| 5018 | var i, l, srcElements, destElements, |
|
| 5019 | clone = elem.cloneNode( true ), |
|
| 5020 | inPage = jQuery.contains( elem.ownerDocument, elem ); |
|
| 5021 | ||
| 5022 | // Support: IE >= 9 |
|
| 5023 | // Fix Cloning issues |
|
| 5024 | if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && |
|
| 5025 | !jQuery.isXMLDoc( elem ) ) { |
|
| 5026 | ||
| 5027 | // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2 |
|
| 5028 | destElements = getAll( clone ); |
|
| 5029 | srcElements = getAll( elem ); |
|
| 5030 | ||
| 5031 | for ( i = 0, l = srcElements.length; i < l; i++ ) { |
|
| 5032 | fixInput( srcElements[ i ], destElements[ i ] ); |
|
| 5033 | } |
|
| 5034 | } |
|
| 5035 | ||
| 5036 | // Copy the events from the original to the clone |
|
| 5037 | if ( dataAndEvents ) { |
|
| 5038 | if ( deepDataAndEvents ) { |
|
| 5039 | srcElements = srcElements || getAll( elem ); |
|
| 5040 | destElements = destElements || getAll( clone ); |
|
| 5041 | ||
| 5042 | for ( i = 0, l = srcElements.length; i < l; i++ ) { |
|
| 5043 | cloneCopyEvent( srcElements[ i ], destElements[ i ] ); |
|
| 5044 | } |
|
| 5045 | } else { |
|
| 5046 | cloneCopyEvent( elem, clone ); |
|
| 5047 | } |
|
| 5048 | } |
|
| 5049 | ||
| 5050 | // Preserve script evaluation history |
|
| 5051 | destElements = getAll( clone, "script" ); |
|
| 5052 | if ( destElements.length > 0 ) { |
|
| 5053 | setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); |
|
| 5054 | } |
|
| 5055 | ||
| 5056 | // Return the cloned set |
|
| 5057 | return clone; |
|
| 5058 | }, |
|
| 5059 | ||
| 5060 | buildFragment: function( elems, context, scripts, selection ) { |
|
| 5061 | var elem, tmp, tag, wrap, contains, j, |
|
| @@ 5322-5362 (lines=41) @@ | ||
| 5319 | return html.replace( rxhtmlTag, "<$1></$2>" ); |
|
| 5320 | }, |
|
| 5321 | ||
| 5322 | clone: function( elem, dataAndEvents, deepDataAndEvents ) { |
|
| 5323 | var i, l, srcElements, destElements, |
|
| 5324 | clone = elem.cloneNode( true ), |
|
| 5325 | inPage = jQuery.contains( elem.ownerDocument, elem ); |
|
| 5326 | ||
| 5327 | // Fix IE cloning issues |
|
| 5328 | if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && |
|
| 5329 | !jQuery.isXMLDoc( elem ) ) { |
|
| 5330 | ||
| 5331 | // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2 |
|
| 5332 | destElements = getAll( clone ); |
|
| 5333 | srcElements = getAll( elem ); |
|
| 5334 | ||
| 5335 | for ( i = 0, l = srcElements.length; i < l; i++ ) { |
|
| 5336 | fixInput( srcElements[ i ], destElements[ i ] ); |
|
| 5337 | } |
|
| 5338 | } |
|
| 5339 | ||
| 5340 | // Copy the events from the original to the clone |
|
| 5341 | if ( dataAndEvents ) { |
|
| 5342 | if ( deepDataAndEvents ) { |
|
| 5343 | srcElements = srcElements || getAll( elem ); |
|
| 5344 | destElements = destElements || getAll( clone ); |
|
| 5345 | ||
| 5346 | for ( i = 0, l = srcElements.length; i < l; i++ ) { |
|
| 5347 | cloneCopyEvent( srcElements[ i ], destElements[ i ] ); |
|
| 5348 | } |
|
| 5349 | } else { |
|
| 5350 | cloneCopyEvent( elem, clone ); |
|
| 5351 | } |
|
| 5352 | } |
|
| 5353 | ||
| 5354 | // Preserve script evaluation history |
|
| 5355 | destElements = getAll( clone, "script" ); |
|
| 5356 | if ( destElements.length > 0 ) { |
|
| 5357 | setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); |
|
| 5358 | } |
|
| 5359 | ||
| 5360 | // Return the cloned set |
|
| 5361 | return clone; |
|
| 5362 | }, |
|
| 5363 | ||
| 5364 | cleanData: function( elems ) { |
|
| 5365 | var data, elem, type, |
|