Skip to content

Commit b607b77

Browse files
Gabriel Schulhofarschmitz
authored andcommitted
Widget: Process "classes" option during _setOption()
1 parent 2c283a9 commit b607b77

File tree

1 file changed

+22
-2
lines changed

1 file changed

+22
-2
lines changed

ui/widget.js

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -357,6 +357,7 @@ $.Widget.prototype = {
357357

358358
return this;
359359
},
360+
360361
_setOptions: function( options ) {
361362
var key;
362363

@@ -366,7 +367,22 @@ $.Widget.prototype = {
366367

367368
return this;
368369
},
370+
371+
_elementsFromClassKey: function( classKey ) {
372+
return $();
373+
},
374+
369375
_setOption: function( key, value ) {
376+
if ( key === "classes" ) {
377+
for ( var classKey in value ) {
378+
if ( value[ classKey ] !== this.options.classes[ classKey ] ) {
379+
this._elementsFromClassKey( classKey )
380+
.removeClass( this._classesFromObject( classKey, this.options.classes ) )
381+
.addClass( this._classesFromObject( classKey, value ) );
382+
}
383+
}
384+
}
385+
370386
this.options[ key ] = value;
371387

372388
if ( key === "disabled" ) {
@@ -383,19 +399,23 @@ $.Widget.prototype = {
383399
return this;
384400
},
385401

386-
_classes: function( key ) {
402+
_classesFromObject: function( key, classes ) {
387403
var out = [],
388404
parts = key.split( " " ),
389405
i = parts.length;
390406

391407
while ( i-- ) {
392408
out.push( parts[ i ] );
393-
out.push( this.options.classes[ parts[ i ] ] );
409+
out.push( classes[ parts[ i ] ] );
394410
}
395411

396412
return out.join( " " );
397413
},
398414

415+
_classes: function( key ) {
416+
return this._classesFromObject( key, this.options.classes );
417+
},
418+
399419
enable: function() {
400420
return this._setOptions({ disabled: false });
401421
},

0 commit comments

Comments
 (0)