]> source.dussan.org Git - jquery.git/commitdiff
Manipulation: Plug an IE8 memory leak in noCloneEvent feature detect
authorDave Methvin <dave.methvin@gmail.com>
Sat, 6 Dec 2014 21:51:50 +0000 (16:51 -0500)
committerDave Methvin <dave.methvin@gmail.com>
Sat, 6 Dec 2014 21:56:41 +0000 (16:56 -0500)
Fixes gh-1840

This feature detect could be simplified now that the only supported browser
with this problem is IE8.

src/manipulation/support.js

index e7345eb3fd0fb96ef706e3c430cd1547492cf676..3ac54f4bbf6360ff95cd0fe1320223fb36f52c7c 100644 (file)
@@ -48,16 +48,8 @@ define([
        support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
 
        // Support: IE<9
-       // Opera does not clone events (and typeof div.attachEvent === undefined).
-       // IE9-10 clones events bound via attachEvent, but they don't trigger with .click()
-       support.noCloneEvent = true;
-       if ( div.attachEvent ) {
-               div.attachEvent( "onclick", function() {
-                       support.noCloneEvent = false;
-               });
-
-               div.cloneNode( true ).click();
-       }
+       // Cloned elements keep attachEvent handlers, we use addEventListener on IE9+
+       support.noCloneEvent = !!div.addEventListener;
 
        // Execute the test only if not already executed in another module.
        if (support.deleteExpando == null) {