]> source.dussan.org Git - jquery-ui.git/commitdiff
Widget: Improve performance of cleanData method
authorFrederik Elvhage <frederik.elvhage@googlemail.com>
Thu, 24 Jul 2014 13:04:06 +0000 (15:04 +0200)
committerScott González <scott.gonzalez@gmail.com>
Thu, 24 Jul 2014 16:07:12 +0000 (12:07 -0400)
Fixes #9546
Closes gh-1291

ui/widget.js

index b86232b736ed12fc7fa1c64d9d0ff9b107f1b31d..edeb7fa6fddce64a4868392553b53301adfe9b43 100644 (file)
@@ -25,9 +25,16 @@ var widget_uuid = 0,
 
 $.cleanData = (function( orig ) {
        return function( elems ) {
-               for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
+               var events, elem, i;
+               for ( i = 0; (elem = elems[i]) != null; i++ ) {
                        try {
-                               $( elem ).triggerHandler( "remove" );
+
+                               // Only trigger remove when necessary to save time
+                               events = $._data( elem, "events" );
+                               if ( events && events.remove ) {
+                                       $( elem ).triggerHandler( "remove" );
+                               }
+
                        // http://bugs.jquery.com/ticket/8235
                        } catch( e ) {}
                }