diff options
-rw-r--r-- | tests/unit/selectmenu/selectmenu_core.js | 1 | ||||
-rw-r--r-- | tests/unit/selectmenu/selectmenu_events.js | 24 | ||||
-rw-r--r-- | tests/unit/selectmenu/selectmenu_options.js | 1 | ||||
-rw-r--r-- | ui/jquery.ui.selectmenu.js | 16 |
4 files changed, 15 insertions, 27 deletions
diff --git a/tests/unit/selectmenu/selectmenu_core.js b/tests/unit/selectmenu/selectmenu_core.js index 85fd4b38c..f06f65c99 100644 --- a/tests/unit/selectmenu/selectmenu_core.js +++ b/tests/unit/selectmenu/selectmenu_core.js @@ -53,7 +53,6 @@ $.each([ equals( button.text(), selected.text(), "inital button text" ); - link.simulate( "focus" ); link.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } ); equals( element.find("option:selected").val(), selected.next("option").val() , "after keydown original select state" ); equals( button.text(), selected.next("option").text(), "after keydown button text" ); diff --git a/tests/unit/selectmenu/selectmenu_events.js b/tests/unit/selectmenu/selectmenu_events.js index 8031b6fc6..4aad80c42 100644 --- a/tests/unit/selectmenu/selectmenu_events.js +++ b/tests/unit/selectmenu/selectmenu_events.js @@ -22,11 +22,9 @@ test("change", function () { var widget = this.element.selectmenu("widget"), menu = widget.filter(".ui-selectmenu-menu"), button = widget.filter(".ui-selectmenu-button"), - link = button.find("a"), value = this.element.find("option").first().text(); - - link.simulate( "focus" ); - link.simulate( "click" ); + + button.find("a").simulate( "click" ); menu.find("a").first().simulate( "mouseover" ).simulate( "click" ); }); @@ -42,11 +40,6 @@ test("close", function () { } }); - var widget = this.element.selectmenu("widget"), - button = widget.filter(".ui-selectmenu-button"), - link = button.find("a"); - - link.simulate( "focus" ); this.element.selectmenu("open").selectmenu("close"); }); @@ -70,11 +63,9 @@ test("focus", function () { var widget = this.element.selectmenu("widget"), button = widget.filter(".ui-selectmenu-button"), - link = button.find("a"), menu = widget.filter(".ui-selectmenu-menu"); - link.simulate( "focus" ); - link.simulate( "click" ); + button.find("a").simulate( "click" ); menu.find(".ui-menu-item").simulate("mouseover"); }); @@ -90,11 +81,6 @@ test("open", function () { } }); - var widget = this.element.selectmenu("widget"), - button = widget.filter(".ui-selectmenu-button"), - link = button.find("a"); - - link.simulate( "focus" ); this.element.selectmenu("open"); }); @@ -113,11 +99,9 @@ test("select", function () { var widget = this.element.selectmenu("widget"), button = widget.filter(".ui-selectmenu-button"), - link = button.find("a"), menu = widget.filter(".ui-selectmenu-menu"); - link.simulate( "focus" ); - link.simulate( "click" ); + button.find("a").simulate( "click" ); menu.find("a").first().simulate( "mouseover" ).simulate("click"); }); diff --git a/tests/unit/selectmenu/selectmenu_options.js b/tests/unit/selectmenu/selectmenu_options.js index 32f490ce0..993086b27 100644 --- a/tests/unit/selectmenu/selectmenu_options.js +++ b/tests/unit/selectmenu/selectmenu_options.js @@ -23,7 +23,6 @@ test("dropdown: CSS styles", function () { menu = widget.filter(".ui-selectmenu-menu"), ul = widget.find("ul"); - link.simulate( "focus" ); this.element.selectmenu("open"); ok( link.hasClass("ui-corner-top") && !link.hasClass("ui-corner-all"), "button styles dropdown"); ok( ul.hasClass("ui-corner-bottom") && !ul.hasClass("ui-corner-all"), "menu styles dropdown"); diff --git a/ui/jquery.ui.selectmenu.js b/ui/jquery.ui.selectmenu.js index 5802b6848..af34b4e19 100644 --- a/ui/jquery.ui.selectmenu.js +++ b/ui/jquery.ui.selectmenu.js @@ -185,6 +185,12 @@ $.widget( "ui.selectmenu", { open: function( event ) { if ( !this.options.disabled ) { + // init menu when initial opened + if ( !this.wasOpen ) { + this.refresh(); + this.wasOpen = true; + } + var currentItem = this._getSelectedItem(); this._toggleButtonStyle(); @@ -269,6 +275,11 @@ $.widget( "ui.selectmenu", { }, _move: function( direction, event ) { + // init menu when not done yet + if ( !this.wasOpen ) { + this.refresh(); + this.wasOpen = true; + } if ( direction == "first" || direction == "last" ) { // set focus manually for first or last item this.menu.menu( "focus", event, this.menu.find( "li" ).not( '.ui-selectmenu-optgroup' )[ direction ]() ); @@ -300,11 +311,6 @@ $.widget( "ui.selectmenu", { }, _buttonEvents: { - focus: function( event ) { - // init Menu on first focus - this.refresh(); - this.button.unbind( "focus." + this.widgetName ) - }, click: function( event ) { this._toggle( event ); event.preventDefault(); |