From 04d668b7171e14292af9f4de1b6bfbbe1a6e990c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Zaefferer?= Date: Thu, 27 Dec 2012 12:50:04 +0100 Subject: [PATCH] Spinner: Update button icons when option changes. Fixes #8926 - Spinner: Can't change icons option after init --- tests/unit/spinner/spinner_options.js | 15 +++++++++++---- ui/jquery.ui.spinner.js | 8 ++++++++ 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/tests/unit/spinner/spinner_options.js b/tests/unit/spinner/spinner_options.js index 284e03a3e3b..6f3650f923a 100644 --- a/tests/unit/spinner/spinner_options.js +++ b/tests/unit/spinner/spinner_options.js @@ -5,10 +5,17 @@ module( "spinner: options" ); // culture is tested after numberFormat, since it depends on numberFormat test( "icons: default ", function() { - expect( 2 ); - var element = $( "#spin" ).val( 0 ).spinner().spinner( "widget" ); - equal( element.find( ".ui-icon:first" ).attr( "class" ), "ui-icon ui-icon-triangle-1-n" ); - equal( element.find( ".ui-icon:last" ).attr( "class" ), "ui-icon ui-icon-triangle-1-s" ); + expect( 4 ); + var element = $( "#spin" ).val( 0 ).spinner(); + equal( element.spinner( "widget" ).find( ".ui-icon:first" ).attr( "class" ), "ui-icon ui-icon-triangle-1-n" ); + equal( element.spinner( "widget" ).find( ".ui-icon:last" ).attr( "class" ), "ui-icon ui-icon-triangle-1-s" ); + + element.spinner( "option", "icons", { + up: "ui-icon-carat-1-n", + down: "ui-icon-carat-1-s" + }); + equal( element.spinner( "widget" ).find( ".ui-icon:first" ).attr( "class" ), "ui-icon ui-icon-carat-1-n" ); + equal( element.spinner( "widget" ).find( ".ui-icon:last" ).attr( "class" ), "ui-icon ui-icon-carat-1-s" ); }); test( "icons: custom ", function() { diff --git a/ui/jquery.ui.spinner.js b/ui/jquery.ui.spinner.js index 406eefb9158..aeffe0a3e34 100644 --- a/ui/jquery.ui.spinner.js +++ b/ui/jquery.ui.spinner.js @@ -368,6 +368,14 @@ $.widget( "ui.spinner", { value = this._parse( value ); } } + if ( key === "icons" ) { + this.buttons.first().find( ".ui-icon" ) + .removeClass( this.options.icons.up ) + .addClass( value.up ); + this.buttons.last().find( ".ui-icon" ) + .removeClass( this.options.icons.down ) + .addClass( value.down ); + } this._super( key, value );