Skip to content

Commit 46e1519

Browse files
Gabriel Schulhofarschmitz
Gabriel Schulhof
authored andcommitted
Widget: Process "classes" option during _setOption()
1 parent dc93b3f commit 46e1519

File tree

1 file changed

+26
-2
lines changed

1 file changed

+26
-2
lines changed

ui/widget.js

Lines changed: 26 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,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

Comments
 (0)