]> source.dussan.org Git - jquery-ui.git/commitdiff
Button: Batched class changes to improve performance. Fixes #6934. Button: Batch...
authorAlex Dovenmuehle <adovenmuehle@gmail.com>
Fri, 11 Feb 2011 03:11:59 +0000 (22:11 -0500)
committerScott González <scott.gonzalez@gmail.com>
Fri, 11 Feb 2011 03:12:56 +0000 (22:12 -0500)
(cherry picked from commit 5b104dbcefdfa708d80e8babea0539617167012d)

ui/jquery.ui.button.js

index e767fe4e1b24e80dc1403908f844ebee70c45f73..a32d3991e465c848b49f4b69ce2de757dff53b13 100644 (file)
@@ -290,27 +290,32 @@ $.widget( "ui.button", {
                                .appendTo( buttonElement.empty() )
                                .text(),
                        icons = this.options.icons,
-                       multipleIcons = icons.primary && icons.secondary;
+                       multipleIcons = icons.primary && icons.secondary,
+                       buttonClasses = [];  
+
                if ( icons.primary || icons.secondary ) {
-                       buttonElement.addClass( "ui-button-text-icon" +
-                               ( multipleIcons ? "s" : ( icons.primary ? "-primary" : "-secondary" ) ) );
+                       buttonClasses.push( "ui-button-text-icon" + ( multipleIcons ? "s" : ( icons.primary ? "-primary" : "-secondary" ) ) );
+
                        if ( icons.primary ) {
                                buttonElement.prepend( "<span class='ui-button-icon-primary ui-icon " + icons.primary + "'></span>" );
                        }
+
                        if ( icons.secondary ) {
                                buttonElement.append( "<span class='ui-button-icon-secondary ui-icon " + icons.secondary + "'></span>" );
                        }
+
                        if ( !this.options.text ) {
-                               buttonElement
-                                       .addClass( multipleIcons ? "ui-button-icons-only" : "ui-button-icon-only" )
-                                       .removeClass( "ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary" );
+                               buttonClasses.push( multipleIcons ? "ui-button-icons-only" : "ui-button-icon-only" );
+                               buttonElement.removeClass( "ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary" );
+
                                if ( !this.hasTitle ) {
                                        buttonElement.attr( "title", buttonText );
                                }
                        }
                } else {
-                       buttonElement.addClass( "ui-button-text-only" );
+                       buttonClasses.push( "ui-button-text-only" );
                }
+               buttonElement.addClass( buttonClasses.join( " " ) );
        }
 });