@@ -357,6 +357,7 @@ $.Widget.prototype = {
357
357
358
358
return this ;
359
359
} ,
360
+
360
361
_setOptions : function ( options ) {
361
362
var key ;
362
363
@@ -366,7 +367,26 @@ $.Widget.prototype = {
366
367
367
368
return this ;
368
369
} ,
370
+
371
+ _elementsFromClassKey : function ( classKey ) {
372
+ if ( this . options . classes [ classKey ] ) {
373
+ return this . element ;
374
+ } else {
375
+ return $ ( ) ;
376
+ }
377
+ } ,
378
+
369
379
_setOption : function ( key , value ) {
380
+ if ( key === "classes" ) {
381
+ for ( var classKey in value ) {
382
+ if ( value [ classKey ] !== this . options . classes [ classKey ] ) {
383
+ this . _elementsFromClassKey ( classKey )
384
+ . removeClass ( this . _classesFromObject ( classKey , this . options . classes ) )
385
+ . addClass ( this . _classesFromObject ( classKey , value ) ) ;
386
+ }
387
+ }
388
+ }
389
+
370
390
this . options [ key ] = value ;
371
391
372
392
if ( key === "disabled" ) {
@@ -383,19 +403,23 @@ $.Widget.prototype = {
383
403
return this ;
384
404
} ,
385
405
386
- _classes : function ( key ) {
406
+ _classesFromObject : function ( key , classes ) {
387
407
var out = [ ] ,
388
408
parts = key . split ( " " ) ,
389
409
i = parts . length ;
390
410
391
411
while ( i -- ) {
392
412
out . push ( parts [ i ] ) ;
393
- out . push ( this . options . classes [ parts [ i ] ] ) ;
413
+ out . push ( classes [ parts [ i ] ] ) ;
394
414
}
395
415
396
416
return out . join ( " " ) ;
397
417
} ,
398
418
419
+ _classes : function ( key ) {
420
+ return this . _classesFromObject ( key , this . options . classes ) ;
421
+ } ,
422
+
399
423
enable : function ( ) {
400
424
return this . _setOptions ( { disabled : false } ) ;
401
425
} ,
0 commit comments