enyo / opentip

Opentip is an open source javascript tooltip based on the protoype framework.
http://www.opentip.org
1.25k stars 401 forks source link

Multiple tooltips clashing with one another #38

Open abyx opened 11 years ago

abyx commented 11 years ago

I have a table with a tooltip for each row, on hover. I noticed that on some cases I have to hover on specific parts of the row to get the tooltip to show. Digging further, I saw that plugin placed a tooltip div on top of the rows, hidden, and that div was catching the hover events and so the tooltips weren't being displayed.

Is there a way to make the library place tooltips in the DOM only on hover, and remove them once they are hidden?

enyo commented 11 years ago

Hi. That's actually what opentip does (except for the removal: once inserted they stay there forever). I fixed a similar bug recently. Are you sure that you're using the absolute latest version of opentip?

abyx commented 11 years ago

@enyo thanks for the fast reply :) I'm using 2.2.7, which I downloaded yesterday. That's the latest, right?

enyo commented 11 years ago

Yep. Weird. What browser are you using and what adapter?

abyx commented 11 years ago

No adapter and latest chrome. I see that when a tooltip is hidden, it's visibility is set to visible, which means it's still there catching events. I was thinking about changing the css to add display: none to it when it's hidden

enyo commented 11 years ago

I guess you mean that you're using the native adapter? No jquery library or similar. Hidden tooltips have display:none;. But maybe there's a bug where they never reach the actual hidden stage. Are those tooltips having the class hiding or hidden? And are you sure that none of your own CSS declarations interfere with opentip?

abyx commented 11 years ago

There are no CSS interferences, AFAICS. It do see that indeed sometimes the tooltip gets stuck as "hiding" and doesn't get to "hidden", which is what's causing the issue. I do not see any errors in the console when this happens. It gets "fixed" if I hover over the element again, causing the tooltip to show and then hide again properly.

enyo commented 11 years ago

That's so weird! I just fixed this bug #32. I'll have to take a look at it at work. Can you provide a publicly accessible site where I can test it?

abyx commented 11 years ago

I'm sorry, I can't publish the code publicly. FWIW, I've just tried increasing the delay I set from 0.1 to 0.2 and I can't seem to get it to reproduce.

enyo commented 11 years ago

Maybe my spiritual involvement fixed the bug?

abyx commented 11 years ago

Setting the delay to 0.1 again I can sometimes get it to happen, but with 0.2 I can't. Seems like a timing issue?

enyo commented 11 years ago

Damn. I was hoping for supernatural powers. Yeah. It's a timing issue where the actual 'hide' timeout gets somewhat canceled. There has to be a separate call to actually hide the tooltip because if I was setting the property display:none immediately you wouldn't be able to see hide effects like fade out. I'll look into it. Please try to create a sample page (ideally jsfiddle) to demonstrate the problem as concise as possible.

abyx commented 11 years ago

FWIW, it was just reproduced with 0.2 delay as well. Just makes it more rare.

KevinAHM commented 3 months ago

I'm getting this as well