]> source.dussan.org Git - jquery-ui.git/commitdiff
Selectmenu: Override menu's _closeOnDocumentClick function to prevent collapseAll...
authorKris Borchers <kris.borchers@gmail.com>
Fri, 2 Aug 2013 01:41:58 +0000 (20:41 -0500)
committerKris Borchers <kris.borchers@gmail.com>
Mon, 12 Aug 2013 00:17:34 +0000 (19:17 -0500)
ui/jquery.ui.selectmenu.js

index 2b9f415471c52b4b99357096057117706cc77a5e..bc7eae1bd441f6b328dd70f72144cb37dc1679ac 100644 (file)
@@ -149,10 +149,13 @@ $.widget( "ui.selectmenu", {
                // adjust menu styles to dropdown
                this.menu.addClass( "ui-corner-bottom" ).removeClass( "ui-corner-all" );
 
-               // Make sure focus stays on selected item
-               this.menuInstance.delay = 999999999;
                // Unbind uneeded Menu events
                this.menuInstance._off( this.menu, "mouseleave" );
+
+               // Cancel the menu's collapseAll on document click
+               this.menuInstance._closeOnDocumentClick = function() {
+                       return false;
+               };
        },
 
        refresh: function() {
@@ -185,9 +188,13 @@ $.widget( "ui.selectmenu", {
                if ( this.options.disabled ) {
                        return;
                }
+
                // Support: IE6-IE9 click doesn't trigger focus on the button
                if ( !this.menuItems ) {
                        this.refresh();
+               } else {
+                       this.menu.find( ".ui-state-focus" ).removeClass( "ui-state-focus" );
+                       this.menu.menu( "focus", null, this._getSelectedItem() );
                }
 
                this.isOpen = true;
@@ -198,7 +205,7 @@ $.widget( "ui.selectmenu", {
 
                this._trigger( "open", event );
        },
-       
+
        _position: function() {
                this.menuWrap.position( $.extend( { of: this.button }, this.options.position ) );
        },