From 11186cc10a3decf8fcc236537edc8ca2a61bd176 Mon Sep 17 00:00:00 2001 From: Felix Nagel Date: Tue, 29 Oct 2013 21:49:17 +0100 Subject: [PATCH] Selectmenu: make sure ui-state-focus class is set on button after initial focus --- ui/jquery.ui.selectmenu.js | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/ui/jquery.ui.selectmenu.js b/ui/jquery.ui.selectmenu.js index 5c13a1619..45d379240 100644 --- a/ui/jquery.ui.selectmenu.js +++ b/ui/jquery.ui.selectmenu.js @@ -56,7 +56,8 @@ $.widget( "ui.selectmenu", { }, _drawButton: function() { - var tabindex = this.element.attr( "tabindex" ); + var that = this, + tabindex = this.element.attr( "tabindex" ); // Associate existing label with the new button this.label = $( "label[for='" + this.ids.element + "']" ).attr( "for", this.ids.button ); @@ -96,6 +97,10 @@ $.widget( "ui.selectmenu", { this._setOption( "width", this.options.width ); this._on( this.button, this._buttonEvents ); + this.button.one( "focusin", function() { + // Delay rendering the menu items until the button receives focus + that._refreshMenu(); + }); this._hoverable( this.button ); this._focusable( this.button ); }, @@ -329,13 +334,6 @@ $.widget( "ui.selectmenu", { }, _buttonEvents: { - focusin: function() { - // Delay rendering the menu items until the button receives focus - if ( !this.menuItems ) { - this._refreshMenu(); - } - this._off( this.button, "focusin" ); - }, click: "_toggle", keydown: function( event ) { var preventDefault = true;