aboutsummaryrefslogtreecommitdiffstats
path: root/ui/jquery.ui.menu.js
diff options
context:
space:
mode:
Diffstat (limited to 'ui/jquery.ui.menu.js')
-rw-r--r--ui/jquery.ui.menu.js38
1 files changed, 20 insertions, 18 deletions
diff --git a/ui/jquery.ui.menu.js b/ui/jquery.ui.menu.js
index b73018a19..4fac02d2a 100644
--- a/ui/jquery.ui.menu.js
+++ b/ui/jquery.ui.menu.js
@@ -18,7 +18,7 @@ var idIncrement = 0;
$.widget( "ui.menu", {
version: "@VERSION",
defaultElement: "<ul>",
- delay: 150,
+ delay: 300,
options: {
menus: "ul",
position: {
@@ -332,12 +332,12 @@ $.widget( "ui.menu", {
},
blur: function( event ) {
+ clearTimeout( this.timer );
+
if ( !this.active ) {
return;
}
- clearTimeout( this.timer );
-
this.active.children( "a" ).removeClass( "ui-state-focus" );
this.active = null;
@@ -381,20 +381,22 @@ $.widget( "ui.menu", {
},
collapseAll: function( event, all ) {
+ clearTimeout( this.timer );
+ this.timer = this._delay( function() {
+ // if we were passed an event, look for the submenu that contains the event
+ var currentMenu = all ? this.element :
+ $( event && event.target ).closest( this.element.find( ".ui-menu" ) );
- // if we were passed an event, look for the submenu that contains the event
- var currentMenu = all ? this.element :
- $( event && event.target ).closest( this.element.find( ".ui-menu" ) );
-
- // if we found no valid submenu ancestor, use the main menu to close all sub menus anyway
- if ( !currentMenu.length ) {
- currentMenu = this.element;
- }
+ // if we found no valid submenu ancestor, use the main menu to close all sub menus anyway
+ if ( !currentMenu.length ) {
+ currentMenu = this.element;
+ }
- this._close( currentMenu );
+ this._close( currentMenu );
- this.blur( event );
- this.activeMenu = currentMenu;
+ this.blur( event );
+ this.activeMenu = currentMenu;
+ }, this.delay);
},
// With no arguments, closes the currently active menu - if nothing is active
@@ -445,11 +447,11 @@ $.widget( "ui.menu", {
this._move( "prev", "last", event );
},
- first: function() {
+ isFirstItem: function() {
return this.active && !this.active.prevAll( ".ui-menu-item" ).length;
},
- last: function() {
+ isLastItem: function() {
return this.active && !this.active.nextAll( ".ui-menu-item" ).length;
},
@@ -478,7 +480,7 @@ $.widget( "ui.menu", {
this.focus( event, this.activeMenu.children( ".ui-menu-item" ).first() );
return;
}
- if ( this.last() ) {
+ if ( this.isLastItem() ) {
return;
}
if ( this._hasScroll() ) {
@@ -502,7 +504,7 @@ $.widget( "ui.menu", {
this.focus( event, this.activeMenu.children( ".ui-menu-item" ).first() );
return;
}
- if ( this.first() ) {
+ if ( this.isFirstItem() ) {
return;
}
if ( this._hasScroll() ) {