Selectmenu: fixed disabled status of the widget (keyboard control)

This commit is contained in:
Felix Nagel
2011-09-29 00:11:18 +02:00
parent c0ea81a2a8
commit a438ec3b7d
2 changed files with 13 additions and 7 deletions

View File

@@ -10,8 +10,8 @@
.ui-selectmenu-menu { padding: 0; margin: 0; position:absolute; top: 0; display: none; }
.ui-selectmenu-menu .ui-menu .ui-menu-item { width: auto; }
.ui-selectmenu-menu .ui-menu .ui-menu-item a { padding: 0.3em 1em 0.3em 1em; }
.ui-selectmenu-menu .ui-menu li.ui-state-disabled { margin: 0; padding: 0; }
.ui-selectmenu-menu .ui-menu .ui-menu-item a { padding: 0.3em 1em 0.3em 1em; }
.ui-selectmenu-menu .ui-menu li.ui-state-disabled { padding: 0.3em 1em 0.3em 1em; }
.ui-selectmenu-menu .ui-menu li.ui-selectmenu-optgroup { font-weight: bold; line-height: 1.5; padding: 2px 0.4em; margin: 0.5em 0 0 0; }
.ui-selectmenu-open { display: block; }

View File

@@ -313,17 +313,21 @@ $.widget( "ui.selectmenu", {
},
_renderItem: function( ul, item) {
return $( "<li />" )
.addClass( ( item.disabled ) ? 'ui-state-disabled' : '' )
.data( "item.selectmenu", item )
.append( $( "<a />", {
var li = $( "<li />" ).data( "item.selectmenu", item );
if ( item.disabled ) {
li.addClass( 'ui-state-disabled' ).text( item.label );
} else {
li.append( $( "<a />", {
text: item.label,
href: '#',
click: function( event ) {
event.preventDefault();
}
})
).appendTo( ul );
);
}
return li.appendTo( ul );
},
_move: function( key, event ) {
@@ -364,8 +368,10 @@ $.widget( "ui.selectmenu", {
this.newelement.button( "option", "disabled", value );
if ( value ) {
this.element.attr( "disabled", "disabled" );
this.newelement.attr( "tabindex", -1 );
} else {
this.element.removeAttr( "disabled" );
this.newelement.attr( "tabindex", 1 );
}
this.list.attr( "aria-disabled", value );
this.close();