diff options
-rw-r--r-- | tests/unit/autocomplete/autocomplete_events.js | 16 | ||||
-rw-r--r-- | ui/jquery.ui.autocomplete.js | 1 | ||||
-rw-r--r-- | ui/jquery.ui.menu.js | 4 |
3 files changed, 20 insertions, 1 deletions
diff --git a/tests/unit/autocomplete/autocomplete_events.js b/tests/unit/autocomplete/autocomplete_events.js index 35103d89b..eb009064c 100644 --- a/tests/unit/autocomplete/autocomplete_events.js +++ b/tests/unit/autocomplete/autocomplete_events.js @@ -203,4 +203,20 @@ test("cancel select", function() { }, 50); }); +test("blur without selection", function() { + expect(1); + var ac = $("#autocomplete").autocomplete({ + delay: 0, + source: data + }); + stop(); + ac.val("j").keydown(); + setTimeout(function() { + $( ".ui-menu-item" ).first().simulate("mouseover"); + ac.simulate("keydown", { keyCode: $.ui.keyCode.TAB }); + same( ac.val(), "j" ); + start(); + }, 50); +}); + })(jQuery); diff --git a/ui/jquery.ui.autocomplete.js b/ui/jquery.ui.autocomplete.js index 526eb3869..e388a63bd 100644 --- a/ui/jquery.ui.autocomplete.js +++ b/ui/jquery.ui.autocomplete.js @@ -338,6 +338,7 @@ $.widget( "ui.autocomplete", { this.menu.element.hide(); this.menu.blur(); this._trigger( "close", event ); + this.menu.isNewMenu = true; } }, diff --git a/ui/jquery.ui.menu.js b/ui/jquery.ui.menu.js index 0841018af..3cc25062c 100644 --- a/ui/jquery.ui.menu.js +++ b/ui/jquery.ui.menu.js @@ -18,6 +18,7 @@ var idIncrement = 0; $.widget("ui.menu", { defaultElement: "<ul>", delay: 150, + isNewMenu: true, options: { position: { my: "left top", @@ -54,7 +55,8 @@ $.widget("ui.menu", { self.select( event ); }) .bind( "mouseover.menu", function( event ) { - if ( self.options.disabled ) { + if ( self.options.disabled || self.isNewMenu ) { + self.isNewMenu = false; return; } var target = $( event.target ).closest( ".ui-menu-item" ); |