@@ -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