Closed Bug 436930 Opened 16 years ago Closed 16 years ago

When the user moves the mouse quickly over elements with onmouseout/onmouseover, either of those events can absurdly fire twice in a row -- destroys order of events/functions

Categories

(Core :: DOM: Events, defect, P1)

x86
Windows XP
defect

Tracking

()

RESOLVED FIXED

People

(Reporter: junkpop, Assigned: smaug)

References

()

Details

(Keywords: helpwanted, regression, Whiteboard: [fixed by 438241])

Attachments

(1 file)

User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9) Gecko/2008051206 Firefox/3.0
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9) Gecko/2008051206 Firefox/3.0

This is unique to Firefox 3 -- also tested in the June 2nd nightly -- same result.  Also tested in the the latest versions of IE7, Safari, Opera -- this bug does not occur in those browsers.


When hovering over either of the Share/Save or Subscribe buttons on http://www.addtoany.com/ , a menu appears. The menu is designed to disappear onmouseout (after a short delay).  

The problem is: After hovering over the button to show the drop-down menu, if you mouse-over the menu too rapidly, the menu disappears.  However, if you slowly move the mouse from the button and onto the menu... the menu will stay, like it is designed to do.


I tried to pinpoint the bug, but haven't had much success yet.  My guess is that this occurs due to the floating elements inside of the menu, but I haven't been able to verify that yet.

Reproducible: Always

Steps to Reproduce:
1. Go to http://www.addtoany.com/ and hover over either of their buttons (Share/Save or Subscribe).
Actual Results:  
A menu appears.

If you move the mouse too quickly over the menu, the menu inappropriately disappears.

If you move the mouse SLOWLY over the menu, the menu successfully stays in place.

Expected Results:  
The menu should stay in place like it does in all other browsers (FF2, IE6+, Safari, Opera)

I've had problems with other drop-down menus around the web that are similar in functionality.  Unfortunately, I do not recall the instances.
After some testing, it seems that this bug occurs because Firefox 3 absurdly lets onmouseout fire twice in a row for an element (without onmouseover firing between the two events, as it should).

None of the other major browsers (FF2, IE6+, Safari, Opera) let this happen.

Again, this is replicable using the AddToAny widgets ( http://www.addtoany.com/ ).  Quickly hover over one of the buttons, then quickly hover over the drop-down menu that appears.
Version: unspecified → 3.0 Branch
Keywords: helpwanted
Summary: Drop-down menus using onmouseover & onmouseout fail when moving the mouse rapidly over menus → When the user moves the mouse quickly over child elements, onmouseout absurdly fires twice in a row on the parent element -- destroys order of events/functions
Add to Any said they will be pushing out a workaround for the bug in their drop-down menu, so http://www.addtoany.com/ no longer shows the bug.

The bug is still viewable in their old menu, which is available here: http://www.addtoany.com/temp/firefox/firefox_3_bug/ 
Regression range for this is
http://bonsai.mozilla.org/cvsquery.cgi?module=PhoenixTinderbox&date=explicit&mindate=1179060540&maxdate=1179066059
-> Bug 369644.
Blocks: 369644
Status: UNCONFIRMED → NEW
Component: General → DOM: Events
Ever confirmed: true
Keywords: regression
Product: Firefox → Core
QA Contact: general → events
Version: 3.0 Branch → Trunk
Flags: wanted1.9.0.x?
Flags: blocking1.9.1?
Any chance to get a *minimal* testcase here?
Not marking blocking unless we can get a good testcase. But looks bad so marking wanted P1.
Assignee: nobody → Olli.Pettay
Flags: wanted1.9.1+
Flags: wanted1.9.0.x?
Flags: wanted1.9.0.x+
Flags: blocking1.9.1?
Flags: blocking1.9.1-
Priority: -- → P1
I am not seeing this on FFx3 RC3 on XP:

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9) Gecko/2008052906 Firefox/3.0

Nor on Mac OS 10.5.3:

Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9) Gecko/2008061004 Firefox/3.0

Maybe they changed the site?

WFM
ok, my last comment was a little confused...  When I try the old copy of the site (http://www.addtoany.com/temp/firefox/firefox_3_bug/) I had trouble getting it to repro, but I was finally successful.

I hover over the Share/Save widget, get the pop-up menu, move the mouse around within the menu for a while (vertically, horizontally, circles) and sometimes the menu will spontaneously disappear.

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9) Gecko/2008052906 Firefox/3.0

Tracy tried Opera and IE and apparently it works fine there.
The test case has been updated (http://www.addtoany.com/temp/firefox/firefox_3_bug/).  Be sure to hit Reload.  Apologies for not presenting something more minimal, but we've at least stripped the menu down to basics.

We've found that the problem, in this test case, is with <input> element.  The bug occurs when you move the mouse over the button, then the <input> element, then onto the "menu" (all in one quick swipe from the top-down).

When we removed the <input> element (http://www.addtoany.com/temp/firefox/firefox_3_bug/without_input_box/), we noticed that the bug is irreproducible -- no problems.

So it seems that the <input> element is causing onmouseout to inappropriately fire twice in a row.  We haven't yet experimented with other elements, but at least we have a clue.
Could you please attach the testcase to the bug. That way it won't get lost years down the road when someone goes back to look at this bug.
Attached file Minimal testcase
Summary: When the user moves the mouse quickly over child elements, onmouseout absurdly fires twice in a row on the parent element -- destroys order of events/functions → When the user moves the mouse quickly over certain elements with onmouseout/onmouseover, the events absurdly fire twice in a row -- destroys order of events/functions
Summary: When the user moves the mouse quickly over certain elements with onmouseout/onmouseover, the events absurdly fire twice in a row -- destroys order of events/functions → When the user moves the mouse quickly over elements with onmouseout/onmouseover, one of those events can absurdly fire twice in a row -- destroys order of events/functions
Summary: When the user moves the mouse quickly over elements with onmouseout/onmouseover, one of those events can absurdly fire twice in a row -- destroys order of events/functions → When the user moves the mouse quickly over elements with onmouseout/onmouseover, either of those events can absurdly fire twice in a row -- destroys order of events/functions
This was fixed in bug 438241
Status: NEW → RESOLVED
Closed: 16 years ago
Resolution: --- → FIXED
Whiteboard: [fixed by 438241]
Flags: wanted1.9.0.x+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: