Ticket #3163: jquery-iefix.diff
| File jquery-iefix.diff, 1.7 kB (added by henric, 6 months ago) |
|---|
-
.js
old new 935 935 936 936 return ret; 937 937 }, 938 939 discardElement: function( element ) { 940 var garbageBin = document.getElementById('IELeakGarbageBin'); 941 if (!garbageBin) { 942 garbageBin = document.createElement('DIV'); 943 garbageBin.id = 'IELeakGarbageBin'; 944 garbageBin.style.display = 'none'; 945 document.body.appendChild(garbageBin); 946 } 938 947 948 // move the element to the garbage bin 949 garbageBin.appendChild(element); 950 garbageBin.innerHTML = ''; 951 if (element.__listener) 952 element.__listener = null; 953 }, 954 939 955 clean: function( elems, context ) { 940 956 var ret = []; 941 957 context = context || document; … … 993 1009 div.innerHTML = wrap[1] + elem + wrap[2]; 994 1010 995 1011 // Move to the right depth 996 while ( wrap[0]-- ) 1012 while ( wrap[0]-- ) { 1013 var oldDiv = div; 997 1014 div = div.lastChild; 998 1015 oldDiv.removeChild(div); 1016 jQuery.discardElement(oldDiv); 1017 oldDiv = null; 1018 } 1019 999 1020 // Remove IE's autoinserted <tbody> from table fragments 1000 1021 if ( jQuery.browser.msie ) { 1001 1022 … … 1019 1040 } 1020 1041 1021 1042 elem = jQuery.makeArray( div.childNodes ); 1043 1044 while (div.firstChild) { 1045 var child = div.firstChild; 1046 div.removeChild( child ); 1047 } 1048 1049 jQuery.discardElement(div); 1022 1050 } 1023 1051 1024 1052 if ( elem.length === 0 && (!jQuery.nodeName( elem, "form" ) && !jQuery.nodeName( elem, "select" )) ) … … 1315 1343 }); 1316 1344 if (this.parentNode) 1317 1345 this.parentNode.removeChild( this ); 1346 jQuery.discardElement(this); 1318 1347 } 1319 1348 }, 1320 1349
