@@ -41,6 +41,11 @@ return $.widget( "ui.spinner", {
41
41
defaultElement : "<input>" ,
42
42
widgetEventPrefix : "spin" ,
43
43
options : {
44
+ classes : {
45
+ "ui-spinner" : "ui-corner-all" ,
46
+ "ui-spinner-up" : "ui-corner-tr" ,
47
+ "ui-spinner-down" : "ui-corner-br"
48
+ } ,
44
49
culture : null ,
45
50
icons : {
46
51
down : "ui-icon-triangle-1-s" ,
@@ -203,20 +208,31 @@ return $.widget( "ui.spinner", {
203
208
204
209
_draw : function ( ) {
205
210
var uiSpinner = this . uiSpinner = this . element
206
- . addClass ( "ui-spinner-input" )
207
211
. attr ( "autocomplete" , "off" )
208
212
. wrap ( this . _uiSpinnerHtml ( ) )
209
213
. parent ( )
210
214
// add buttons
211
215
. append ( this . _buttonHtml ( ) ) ;
212
216
217
+ this . _addClass ( this . uiSpinner , "ui-spinner" , "ui-widget ui-widget-content" ) ;
218
+ this . _addClass ( "ui-spinner-input" ) ;
219
+
213
220
this . element . attr ( "role" , "spinbutton" ) ;
214
221
215
222
// button bindings
216
- this . buttons = uiSpinner . find ( ".ui-spinner-button " )
223
+ this . buttons = uiSpinner . find ( "a " )
217
224
. attr ( "tabIndex" , - 1 )
218
- . button ( )
219
- . removeClass ( "ui-corner-all" ) ;
225
+ . button ( ) ;
226
+
227
+ // Right now button does not support classes once it does adjust this with classes
228
+ this . _removeClass ( this . buttons , "ui-corner-all" ) ;
229
+
230
+ this . _addClass ( this . buttons . eq ( 0 ) , "ui-spinner-button ui-spinner-up" ) ;
231
+ this . _addClass ( this . buttons . eq ( 1 ) , "ui-spinner-button ui-spinner-down" ) ;
232
+ this . _addClass ( this . buttons . first ( ) . find ( "span span" ) , null ,
233
+ "ui-icon " + this . options . icons . up ) ;
234
+ this . _addClass ( this . buttons . last ( ) . find ( "span span" ) , null ,
235
+ "ui-icon " + this . options . icons . down ) ;
220
236
221
237
// IE 6 doesn't understand height: 50% for the buttons
222
238
// unless the wrapper has an explicit height
@@ -254,16 +270,16 @@ return $.widget( "ui.spinner", {
254
270
} ,
255
271
256
272
_uiSpinnerHtml : function ( ) {
257
- return "<span class='ui-spinner ui-widget ui-widget-content ui-corner-all' ></span>" ;
273
+ return "<span></span>" ;
258
274
} ,
259
275
260
276
_buttonHtml : function ( ) {
261
277
return "" +
262
- "<a class='ui-spinner-button ui-spinner-up ui-corner-tr' >" +
263
- "<span class='ui-icon " + this . options . icons . up + "' >▲</span>" +
278
+ "<a>" +
279
+ "<span>▲</span>" +
264
280
"</a>" +
265
- "<a class='ui-spinner-button ui-spinner-down ui-corner-br' >" +
266
- "<span class='ui-icon " + this . options . icons . down + "' >▼</span>" +
281
+ "<a>" +
282
+ "<span>▼</span>" +
267
283
"</a>" ;
268
284
} ,
269
285
@@ -371,8 +387,9 @@ return $.widget( "ui.spinner", {
371
387
} ,
372
388
373
389
_setOption : function ( key , value ) {
390
+ var prevValue , first , last ;
374
391
if ( key === "culture" || key === "numberFormat" ) {
375
- var prevValue = this . _parse ( this . element . val ( ) ) ;
392
+ prevValue = this . _parse ( this . element . val ( ) ) ;
376
393
this . options [ key ] = value ;
377
394
this . element . val ( this . _format ( prevValue ) ) ;
378
395
return ;
@@ -384,18 +401,18 @@ return $.widget( "ui.spinner", {
384
401
}
385
402
}
386
403
if ( key === "icons" ) {
387
- this . buttons . first ( ) . find ( ".ui-icon" )
388
- . removeClass ( this . options . icons . up )
389
- . addClass ( value . up ) ;
390
- this . buttons . last ( ) . find ( ".ui-icon" )
391
- . removeClass ( this . options . icons . down )
392
- . addClass ( value . down ) ;
404
+ first = this . buttons . first ( ) . find ( ".ui-icon" ) ;
405
+ this . _removeClass ( first , null , this . options . icons . up ) ;
406
+ this . _addClass ( first , null , value . up ) ;
407
+ last = this . buttons . last ( ) . find ( ".ui-icon" ) ;
408
+ this . _removeClass ( last , null , this . options . icons . down ) ;
409
+ this . _addClass ( last , null , value . down ) ;
393
410
}
394
411
395
412
this . _super ( key , value ) ;
396
413
397
414
if ( key === "disabled" ) {
398
- this . widget ( ) . toggleClass ( "ui-state-disabled" , ! ! value ) ;
415
+ this . _toggleClass ( this . widget ( ) , null , "ui-state-disabled" , ! ! value ) ;
399
416
this . element . prop ( "disabled" , ! ! value ) ;
400
417
this . buttons . button ( value ? "disable" : "enable" ) ;
401
418
}
@@ -461,13 +478,13 @@ return $.widget( "ui.spinner", {
461
478
462
479
_destroy : function ( ) {
463
480
this . element
464
- . removeClass ( "ui-spinner-input" )
465
481
. prop ( "disabled" , false )
466
482
. removeAttr ( "autocomplete" )
467
483
. removeAttr ( "role" )
468
484
. removeAttr ( "aria-valuemin" )
469
485
. removeAttr ( "aria-valuemax" )
470
486
. removeAttr ( "aria-valuenow" ) ;
487
+
471
488
this . uiSpinner . replaceWith ( this . element ) ;
472
489
} ,
473
490
0 commit comments