@@ -718,11 +718,7 @@ $.widget("ui.selectmenu", {
718
718
if ( typeof ( index ) == 'undefined' ) {
719
719
this . _setOption ( 'disabled' , true ) ;
720
720
} else {
721
- if ( type == "optgroup" ) {
722
- this . _toggleOptgroup ( index , false ) ;
723
- } else {
724
- this . _toggleOption ( index , false ) ;
725
- }
721
+ this . _toggleEnabled ( ( type || "option" ) , index , false ) ;
726
722
}
727
723
} ,
728
724
@@ -731,47 +727,32 @@ $.widget("ui.selectmenu", {
731
727
if ( typeof ( index ) == 'undefined' ) {
732
728
this . _setOption ( 'disabled' , false ) ;
733
729
} else {
734
- if ( type == "optgroup" ) {
735
- this . _toggleOptgroup ( index , true ) ;
736
- } else {
737
- this . _toggleOption ( index , true ) ;
738
- }
730
+ this . _toggleEnabled ( ( type || "option" ) , index , true ) ;
739
731
}
740
732
} ,
741
733
742
734
_disabled : function ( elem ) {
743
735
return $ ( elem ) . hasClass ( 'ui-state-disabled' ) ;
744
736
} ,
745
-
746
- _toggleOption : function ( index , flag ) {
747
- var optionElem = this . _optionLis . eq ( index ) ;
748
- if ( optionElem ) {
749
- optionElem
750
- . toggleClass ( 'ui-state-disabled' , ! flag )
751
- . find ( "a" ) . attr ( "aria-disabled" , flag ) ;
737
+
738
+ // true = enabled, false = disabled
739
+ _toggleEnabled : function ( type , index , flag ) {
740
+ var element = this . element . find ( type ) . eq ( index ) ,
741
+ elements = ( type === "optgroup" ) ? this . list . find ( 'li.ui-selectmenu-group-' + index ) : this . _optionLis . eq ( index ) ;
742
+
743
+ if ( elements ) {
744
+ elements
745
+ . toggleClass ( 'ui-state-disabled' , ! flag )
746
+ . attr ( "aria-disabled" , flag ) ;
747
+
752
748
if ( flag ) {
753
- this . element . find ( "option" ) . eq ( index ) . removeAttr ( "disabled" ) ;
749
+ element . removeAttr ( "disabled" ) ;
754
750
} else {
755
- this . element . find ( "option" ) . eq ( index ) . attr ( "disabled" , "disabled" ) ;
751
+ element . attr ( "disabled" , "disabled" ) ;
756
752
}
757
753
}
758
754
} ,
759
755
760
- // true = enabled, false = disabled
761
- _toggleOptgroup : function ( index , flag ) {
762
- var optGroupElem = this . list . find ( 'li.ui-selectmenu-group-' + index ) ;
763
- if ( optGroupElem ) {
764
- optGroupElem
765
- . toggleClass ( 'ui-state-disabled' , ! flag )
766
- . attr ( "aria-disabled" , flag ) ;
767
- if ( flag ) {
768
- this . element . find ( "optgroup" ) . eq ( index ) . removeAttr ( "disabled" ) ;
769
- } else {
770
- this . element . find ( "optgroup" ) . eq ( index ) . attr ( "disabled" , "disabled" ) ;
771
- }
772
- }
773
- } ,
774
-
775
756
index : function ( newIndex ) {
776
757
if ( arguments . length ) {
777
758
if ( ! this . _disabled ( $ ( this . _optionLis [ newIndex ] ) ) && newIndex != this . _selectedIndex ( ) ) {
0 commit comments