Permalink
Browse files

Tooltip: Only bind remove handler for delegated tooltips

The remove handler was being added for every tooltip, but only removed for
delegated tooltips. The default destroy behavior already handles non-delegated
tooltips, so the handler should only be added for delegated tooltips.

Fixes #9531
Closes gh-1156
  • Loading branch information...
scottgonzalez committed Jan 2, 2014
1 parent 247257e commit a8ff77360b78b7eabcffd97b8b11c2d1f150ed4e
Showing with 11 additions and 4 deletions.
  1. +11 −4 ui/jquery.ui.tooltip.js
@@ -310,11 +310,17 @@ $.widget( "ui.tooltip", {
fakeEvent.currentTarget = target[0];
this.close( fakeEvent, true );
}
},
remove: function() {
this._removeTooltip( tooltip );
}
};
// Only bind remove handler for delegated targets. Non-delegated
// tooltips will handle this in destroy.
if ( target[ 0 ] !== this.element[ 0 ] ) {
events.remove = function() {
this._removeTooltip( tooltip );
};
}
if ( !event || event.type === "mouseover" ) {
events.mouseleave = "close";
}
@@ -353,8 +359,9 @@ $.widget( "ui.tooltip", {
target.removeData( "ui-tooltip-open" );
this._off( target, "mouseleave focusout keyup" );
// Remove 'remove' binding only on delegated targets
if ( target[0] !== this.element[0] ) {
if ( target[ 0 ] !== this.element[ 0 ] ) {
this._off( target, "remove" );
}
this._off( this.document, "mousemove" );

0 comments on commit a8ff773

Please sign in to comment.