mirror of
https://github.com/jquery/jquery-ui.git
synced 2024-11-21 11:04:24 +00:00
Tooltip: Treat the tooltip as closing until it's fully removed
This ensures that we don't trigger the close event twice if the tooltip is destroyed during the hide animation. Closes gh-1306
This commit is contained in:
parent
d157b669b7
commit
32bef7ad4e
@ -154,4 +154,24 @@ asyncTest( "programmatic focus with async content", function() {
|
|||||||
element.focus();
|
element.focus();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
asyncTest( "destroy during hide animation; only one close event", function() {
|
||||||
|
expect( 1 );
|
||||||
|
|
||||||
|
var element = $( "#tooltipped1" ).tooltip({
|
||||||
|
show: false,
|
||||||
|
hide: true
|
||||||
|
});
|
||||||
|
|
||||||
|
element.bind( "tooltipclose", function() {
|
||||||
|
ok( true, "tooltip closed" );
|
||||||
|
});
|
||||||
|
|
||||||
|
element.tooltip( "open" );
|
||||||
|
element.tooltip( "close" );
|
||||||
|
setTimeout(function() {
|
||||||
|
element.tooltip( "destroy" );
|
||||||
|
start();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
}( jQuery ) );
|
}( jQuery ) );
|
||||||
|
@ -296,6 +296,8 @@ return $.widget( "ui.tooltip", {
|
|||||||
}, this.options.position ) );
|
}, this.options.position ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.hiding = false;
|
||||||
|
this.closing = false;
|
||||||
tooltip.hide();
|
tooltip.hide();
|
||||||
|
|
||||||
this._show( tooltip, this.options.show );
|
this._show( tooltip, this.options.show );
|
||||||
@ -362,9 +364,12 @@ return $.widget( "ui.tooltip", {
|
|||||||
|
|
||||||
this._removeDescribedBy( target );
|
this._removeDescribedBy( target );
|
||||||
|
|
||||||
|
this.hiding = true;
|
||||||
tooltip.stop( true );
|
tooltip.stop( true );
|
||||||
this._hide( tooltip, this.options.hide, function() {
|
this._hide( tooltip, this.options.hide, function() {
|
||||||
that._removeTooltip( $( this ) );
|
that._removeTooltip( $( this ) );
|
||||||
|
this.hiding = false;
|
||||||
|
this.closing = false;
|
||||||
});
|
});
|
||||||
|
|
||||||
target.removeData( "ui-tooltip-open" );
|
target.removeData( "ui-tooltip-open" );
|
||||||
@ -385,7 +390,9 @@ return $.widget( "ui.tooltip", {
|
|||||||
|
|
||||||
this.closing = true;
|
this.closing = true;
|
||||||
this._trigger( "close", event, { tooltip: tooltip } );
|
this._trigger( "close", event, { tooltip: tooltip } );
|
||||||
this.closing = false;
|
if ( !this.hiding ) {
|
||||||
|
this.closing = false;
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
_tooltip: function( element ) {
|
_tooltip: function( element ) {
|
||||||
|
Loading…
Reference in New Issue
Block a user