@@ -357,6 +357,7 @@ $.Widget.prototype = {
357357
358358 return this ;
359359 } ,
360+
360361 _setOptions : function ( options ) {
361362 var key ;
362363
@@ -366,7 +367,26 @@ $.Widget.prototype = {
366367
367368 return this ;
368369 } ,
370+
371+ _elementsFromClassKey : function ( classKey ) {
372+ if ( this . options . classes [ classKey ] ) {
373+ return this . element ;
374+ } else {
375+ return $ ( ) ;
376+ }
377+ } ,
378+
369379 _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+
370390 this . options [ key ] = value ;
371391
372392 if ( key === "disabled" ) {
@@ -383,19 +403,23 @@ $.Widget.prototype = {
383403 return this ;
384404 } ,
385405
386- _classes : function ( key ) {
406+ _classesFromObject : function ( key , classes ) {
387407 var out = [ ] ,
388408 parts = key . split ( " " ) ,
389409 i = parts . length ;
390410
391411 while ( i -- ) {
392412 out . push ( parts [ i ] ) ;
393- out . push ( this . options . classes [ parts [ i ] ] ) ;
413+ out . push ( classes [ parts [ i ] ] ) ;
394414 }
395415
396416 return out . join ( " " ) ;
397417 } ,
398418
419+ _classes : function ( key ) {
420+ return this . _classesFromObject ( key , this . options . classes ) ;
421+ } ,
422+
399423 enable : function ( ) {
400424 return this . _setOptions ( { disabled : false } ) ;
401425 } ,
0 commit comments