From 1b503a237e1dc47739a8a451debbc86e169851e3 Mon Sep 17 00:00:00 2001 From: Scott González Date: Wed, 14 Nov 2012 14:14:25 -0500 Subject: Tooltip: Handle synthetic focusin events. Fixes #8740 - Tooltip: Does not hide consistently with dynamically loaded content. --- ui/jquery.ui.tooltip.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'ui') diff --git a/ui/jquery.ui.tooltip.js b/ui/jquery.ui.tooltip.js index e5b496bee..ffffe1981 100644 --- a/ui/jquery.ui.tooltip.js +++ b/ui/jquery.ui.tooltip.js @@ -188,7 +188,8 @@ $.widget( "ui.tooltip", { _updateContent: function( target, event ) { var content, contentOption = this.options.content, - that = this; + that = this, + eventType = event ? event.type : null; if ( typeof contentOption === "string" ) { return this._open( event, target, contentOption ); @@ -202,6 +203,14 @@ $.widget( "ui.tooltip", { // IE may instantly serve a cached response for ajax requests // delay this call to _open so the other call to _open runs first that._delay(function() { + // jQuery creates a special event for focusin when it doesn't + // exist natively. To improve performance, the native event + // object is reused and the type is changed. Therefore, we can't + // rely on the type being correct after the event finished + // bubbling, so we set it back to the previous value. (#8740) + if ( event ) { + event.type = eventType; + } this._open( event, target, response ); }); }); -- cgit v1.2.3