mirror of
https://github.com/jquery/jquery-ui.git
synced 2026-04-20 03:02:41 -04:00
Dialog: Track the instance as soon as the dialog is opened
Fixes #10152
This commit is contained in:
15
ui/dialog.js
15
ui/dialog.js
@@ -273,6 +273,11 @@ return $.widget( "ui.dialog", {
|
||||
that._trigger( "focus" );
|
||||
});
|
||||
|
||||
// Track the dialog immediately upon openening in case a focus event
|
||||
// somehow occurs outside of the dialog before an element inside the
|
||||
// dialog is focused (#10152)
|
||||
this._makeFocusTarget();
|
||||
|
||||
this._trigger( "open" );
|
||||
},
|
||||
|
||||
@@ -584,14 +589,18 @@ return $.widget( "ui.dialog", {
|
||||
|
||||
_trackFocus: function() {
|
||||
this._on( this.widget(), {
|
||||
"focusin": function( event ) {
|
||||
this._untrackInstance();
|
||||
this._trackingInstances().unshift( this );
|
||||
focusin: function( event ) {
|
||||
this._makeFocusTarget();
|
||||
this._focusedElement = $( event.target );
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
_makeFocusTarget: function() {
|
||||
this._untrackInstance();
|
||||
this._trackingInstances().unshift( this );
|
||||
},
|
||||
|
||||
_untrackInstance: function() {
|
||||
var instances = this._trackingInstances(),
|
||||
exists = $.inArray( this, instances );
|
||||
|
||||
Reference in New Issue
Block a user