From a4b7feabd3aa59bbd5523a8a199b0afbce070d7f Mon Sep 17 00:00:00 2001 From: Alberto Monteiro Date: Thu, 15 Dec 2011 17:52:49 -0300 Subject: Dialog: When destroy is called place the element back in original DOM position. Fixed #4980 - Dialog: Destroy should place element back in original DOM position --- ui/jquery.ui.dialog.js | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'ui') diff --git a/ui/jquery.ui.dialog.js b/ui/jquery.ui.dialog.js index 3d7638667..1f959a837 100644 --- a/ui/jquery.ui.dialog.js +++ b/ui/jquery.ui.dialog.js @@ -77,8 +77,11 @@ $.widget("ui.dialog", { // #5742 - .attr() might return a DOMElement if ( typeof this.originalTitle !== "string" ) { this.originalTitle = ""; - } - + } + this.oldPosition = { + parent: this.element.parent(), + index: this.element.parent().children().index( this.element ) + }; this.options.title = this.options.title || this.originalTitle; var self = this, options = self.options, @@ -168,7 +171,8 @@ $.widget("ui.dialog", { }, _destroy: function() { - var self = this; + var self = this, next, + oldPosition = this.oldPosition; if ( self.overlay ) { self.overlay.destroy(); @@ -183,6 +187,13 @@ $.widget("ui.dialog", { if ( self.originalTitle ) { self.element.attr( "title", self.originalTitle ); } + + next = oldPosition.parent.children().eq( oldPosition.index ); + if ( next.length ) { + next.before( self.element ); + } else { + oldPosition.parent.append( self.element ); + } }, widget: function() { -- cgit v1.2.3 From c88add2269c195513b1127d4e6842373fb9f6e60 Mon Sep 17 00:00:00 2001 From: kborchers Date: Tue, 20 Dec 2011 11:49:48 -0600 Subject: Menu: Fix close delay and increase the default delay --- tests/unit/menu/menu_events.js | 40 +++++++++++++++++++++++----------------- ui/jquery.ui.menu.js | 30 ++++++++++++++++-------------- 2 files changed, 39 insertions(+), 31 deletions(-) (limited to 'ui') diff --git a/tests/unit/menu/menu_events.js b/tests/unit/menu/menu_events.js index 79b98163b..9e68e0c67 100644 --- a/tests/unit/menu/menu_events.js +++ b/tests/unit/menu/menu_events.js @@ -93,12 +93,16 @@ asyncTest( "handle submenu auto collapse: mouseleave", function() { setTimeout(function() { equal( $menu.find( "ul[aria-expanded='true']" ).length, 2, "second submenu expanded" ); $menu.find( "ul[aria-expanded='true']:first" ).trigger( "mouseleave" ); - equal( $menu.find( "ul[aria-expanded='true']" ).length, 1, "second submenu collapsed" ); - $menu.trigger( "mouseleave" ); - equal( $menu.find( "ul[aria-expanded='true']" ).length, 0, "first submenu collapsed" ); - start(); - }, 400); - }, 200); + setTimeout(function() { + equal( $menu.find( "ul[aria-expanded='true']" ).length, 1, "second submenu collapsed" ); + $menu.trigger( "mouseleave" ); + setTimeout(function() { + equal( $menu.find( "ul[aria-expanded='true']" ).length, 0, "first submenu collapsed" ); + start(); + }, 1400); + }, 1050); + }, 700); + }, 350); }); asyncTest( "handle custom menu item submenu auto collapse: mouseleave", function() { @@ -112,17 +116,19 @@ asyncTest( "handle custom menu item submenu auto collapse: mouseleave", function setTimeout(function() { equal( $menu.find( "div[aria-expanded='true']" ).length, 2, "second submenu expanded" ); $menu.find( "div[aria-expanded='true']:first" ).trigger( "mouseleave" ); - equal( $menu.find( "div[aria-expanded='true']" ).length, 1, "second submenu collapsed" ); - - $menu.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN }); - ok( $menu.find( ".ui-state-active" ).is( "#menu5 :nth-child(7) a" ), - "down keypress selected an item from the first submenu" ); - - $menu.trigger( "mouseleave" ); - equal( $menu.find( "div[aria-expanded='true']" ).length, 0, "first submenu collapsed" ); - start(); - }, 400); - }, 200); + setTimeout(function() { + equal( $menu.find( "div[aria-expanded='true']" ).length, 1, "second submenu collapsed" ); + $menu.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN }); + ok( $menu.find( ".ui-state-active" ).is( "#menu5 :nth-child(7) a" ), + "down keypress selected an item from the first submenu" ); + $menu.trigger( "mouseleave" ); + setTimeout(function() { + equal( $menu.find( "div[aria-expanded='true']" ).length, 0, "first submenu collapsed" ); + start(); + }, 1400); + }, 1050); + }, 700); + }, 350); }); diff --git a/ui/jquery.ui.menu.js b/ui/jquery.ui.menu.js index b73018a19..c5d4fd3aa 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: "