Search and Top Navigation
#15051 open bug ()
Opened September 23, 2016 06:41PM UTC
Last modified September 29, 2016 05:48PM UTC
no callback for tooltip shown with a delay
Reported by: | jason-s | Owned by: | |
---|---|---|---|
Priority: | blocker | Milestone: | 1.13.0 |
Component: | ui.tooltip | Version: | 1.11.3 |
Keywords: | Cc: | ||
Blocked by: | Blocking: |
Description
There is the open() event callback for the tooltip widget but it gets called immediately when there is a trigger to open the tooltip. In my case I need to use a show: {delay: 500}
to delay 500ms, and execute a callback when the tooltip is actually shown. There appears to be no way to do this with the existing version of code.
I'm looking at jquery.widget._show() and it does provide a callback, but the tooltip widget does not use this:
(from https://github.com/jquery/jquery-ui/blob/master/ui/widgets/tooltip.js#L322)
this._show( tooltip, this.options.show ); // Handle tracking tooltips that are shown with a delay (#8644). As soon // as the tooltip is visible, position the tooltip using the most recent // event. // Adds the check to add the timers only when both delay and track options are set (#14682) if ( this.options.track && this.options.show && this.options.show.delay ) { delayedShow = this.delayedShow = setInterval( function() { if ( tooltip.is( ":visible" ) ) { position( positionOption.of ); clearInterval( delayedShow ); } }, $.fx.interval ); } this._trigger( "open", event, { tooltip: tooltip } );
Not sure what the change should be, but there ought to be some way to provide a callback function that is triggered when the tooltip is actually shown. (should open()
get called later? should there be an _open()
event as well? should the show options include a callback
that is called when the show operation is complete?)
Attachments (0)
Change History (1)
Changed September 29, 2016 05:48PM UTC by comment:1
component: | ui.core → ui.tooltip |
---|---|
milestone: | none → 1.13.0 |
priority: | minor → blocker |
status: | new → open |
To deal with this, we need to rename the existing
open
event tobeforeOpen
and add a newopen
event after_show()
completes. This can't happen until 1.13.0 since it's a breaking change. We also need to update dialog to match.