Effects: Backporting 8108ec8 - Fixes #7595 - Wrapper-creating jquery-ui animations will discard any focus state during the animation - Thanks @rubyruy

This commit is contained in:
Corey Frang 2011-08-02 16:58:52 -05:00
parent 4c57f361ad
commit 82df6924cb

View File

@ -367,9 +367,16 @@ $.extend($.effects, {
border: 'none',
margin: 0,
padding: 0
});
}),
active = document.activeElement;
element.wrap(wrapper);
// Fixes #7595 - Elements lose focus when wrapped.
if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) {
$( active ).focus();
}
wrapper = element.parent(); //Hotfix for jQuery 1.4 since some change in wrap() seems to actually loose the reference to the wrapped element
// transfer positioning properties to the wrapper
@ -394,8 +401,18 @@ $.extend($.effects, {
},
removeWrapper: function(element) {
if (element.parent().is('.ui-effects-wrapper'))
return element.parent().replaceWith(element);
var parent,
active = document.activeElement;
if (element.parent().is('.ui-effects-wrapper')) {
parent = element.parent().replaceWith(element);
// Fixes #7595 - Elements lose focus when wrapped.
if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) {
$( active ).focus();
}
return parent;
}
return element;
},