@@ -49,6 +49,11 @@ return $.widget( "ui.spinner", {
49
49
defaultElement : "<input>" ,
50
50
widgetEventPrefix : "spin" ,
51
51
options : {
52
+ classes : {
53
+ "ui-spinner" : "ui-corner-all" ,
54
+ "ui-spinner-down" : "ui-corner-br" ,
55
+ "ui-spinner-up" : "ui-corner-tr"
56
+ } ,
52
57
culture : null ,
53
58
icons : {
54
59
down : "ui-icon-triangle-1-s" ,
@@ -211,20 +216,31 @@ return $.widget( "ui.spinner", {
211
216
212
217
_draw : function ( ) {
213
218
var uiSpinner = this . uiSpinner = this . element
214
- . addClass ( "ui-spinner-input" )
215
219
. attr ( "autocomplete" , "off" )
216
220
. wrap ( this . _uiSpinnerHtml ( ) )
217
221
. parent ( )
218
222
// add buttons
219
223
. append ( this . _buttonHtml ( ) ) ;
220
224
225
+ this . _addClass ( this . uiSpinner , "ui-spinner" , "ui-widget ui-widget-content" ) ;
226
+ this . _addClass ( "ui-spinner-input" ) ;
227
+
221
228
this . element . attr ( "role" , "spinbutton" ) ;
222
229
223
230
// button bindings
224
- this . buttons = uiSpinner . find ( ".ui-spinner-button " )
231
+ this . buttons = uiSpinner . children ( "a " )
225
232
. attr ( "tabIndex" , - 1 )
226
- . button ( )
227
- . removeClass ( "ui-corner-all" ) ;
233
+ . button ( ) ;
234
+
235
+ // TODO: Right now button does not support classes this is already updated in button PR
236
+ this . _removeClass ( this . buttons , "ui-corner-all" ) ;
237
+
238
+ this . _addClass ( this . buttons . first ( ) , "ui-spinner-button ui-spinner-up" ) ;
239
+ this . _addClass ( this . buttons . last ( ) , "ui-spinner-button ui-spinner-down" ) ;
240
+ this . _addClass ( this . buttons . first ( ) . find ( ".ui-button-text span" ) , null ,
241
+ "ui-icon " + this . options . icons . up ) ;
242
+ this . _addClass ( this . buttons . last ( ) . find ( ".ui-button-text span" ) , null ,
243
+ "ui-icon " + this . options . icons . down ) ;
228
244
229
245
// IE 6 doesn't understand height: 50% for the buttons
230
246
// unless the wrapper has an explicit height
@@ -262,16 +278,16 @@ return $.widget( "ui.spinner", {
262
278
} ,
263
279
264
280
_uiSpinnerHtml : function ( ) {
265
- return "<span class='ui-spinner ui-widget ui-widget-content ui-corner-all'></span >" ;
281
+ return "<span>" ;
266
282
} ,
267
283
268
284
_buttonHtml : function ( ) {
269
285
return "" +
270
- "<a class='ui-spinner-button ui-spinner-up ui-corner-tr' >" +
271
- "<span class='ui-icon " + this . options . icons . up + "' >▲</span>" +
286
+ "<a>" +
287
+ "<span>▲</span>" +
272
288
"</a>" +
273
- "<a class='ui-spinner-button ui-spinner-down ui-corner-br' >" +
274
- "<span class='ui-icon " + this . options . icons . down + "' >▼</span>" +
289
+ "<a>" +
290
+ "<span>▼</span>" +
275
291
"</a>" ;
276
292
} ,
277
293
@@ -379,8 +395,10 @@ return $.widget( "ui.spinner", {
379
395
} ,
380
396
381
397
_setOption : function ( key , value ) {
398
+ var prevValue , first , last ;
399
+
382
400
if ( key === "culture" || key === "numberFormat" ) {
383
- var prevValue = this . _parse ( this . element . val ( ) ) ;
401
+ prevValue = this . _parse ( this . element . val ( ) ) ;
384
402
this . options [ key ] = value ;
385
403
this . element . val ( this . _format ( prevValue ) ) ;
386
404
return ;
@@ -392,18 +410,18 @@ return $.widget( "ui.spinner", {
392
410
}
393
411
}
394
412
if ( key === "icons" ) {
395
- this . buttons . first ( ) . find ( ".ui-icon" )
396
- . removeClass ( this . options . icons . up )
397
- . addClass ( value . up ) ;
398
- this . buttons . last ( ) . find ( ".ui-icon" )
399
- . removeClass ( this . options . icons . down )
400
- . addClass ( value . down ) ;
413
+ first = this . buttons . first ( ) . find ( ".ui-icon" ) ;
414
+ this . _removeClass ( first , null , this . options . icons . up ) ;
415
+ this . _addClass ( first , null , value . up ) ;
416
+ last = this . buttons . last ( ) . find ( ".ui-icon" ) ;
417
+ this . _removeClass ( last , null , this . options . icons . down ) ;
418
+ this . _addClass ( last , null , value . down ) ;
401
419
}
402
420
403
421
this . _super ( key , value ) ;
404
422
405
423
if ( key === "disabled" ) {
406
- this . widget ( ) . toggleClass ( "ui-state-disabled" , ! ! value ) ;
424
+ this . _toggleClass ( this . uiSpinner , null , "ui-state-disabled" , ! ! value ) ;
407
425
this . element . prop ( "disabled" , ! ! value ) ;
408
426
this . buttons . button ( value ? "disable" : "enable" ) ;
409
427
}
@@ -469,13 +487,13 @@ return $.widget( "ui.spinner", {
469
487
470
488
_destroy : function ( ) {
471
489
this . element
472
- . removeClass ( "ui-spinner-input" )
473
490
. prop ( "disabled" , false )
474
491
. removeAttr ( "autocomplete" )
475
492
. removeAttr ( "role" )
476
493
. removeAttr ( "aria-valuemin" )
477
494
. removeAttr ( "aria-valuemax" )
478
495
. removeAttr ( "aria-valuenow" ) ;
496
+
479
497
this . uiSpinner . replaceWith ( this . element ) ;
480
498
} ,
481
499
0 commit comments