New issue
Advanced search Search tips
Starred by 36 users

Issue metadata

Status: Fixed
Closed: Aug 2017
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 3
Type: Bug

Blocked on:
issue 488886
issue 515921

Show other hotlists

Hotlists containing this issue:

Sign in to add a comment

Issue 276329: Mouseenter/mouseleave not triggered when element under cursor is removed or moved

Reported by, Aug 20 2013

Issue description

Chrome Version       : 31.0.1605.0 canary

Other browsers tested:
    Safari 6: FAIL
    Firefox 23.0.1: OK
    IE 10: OK

What steps will reproduce the problem?
1. In the attached test case, open the developer tools console
2. Click the red div

What is the expected result?
The console should output "enter green"

What happens instead?
The mouseenter event on the green div is not triggered
589 bytes View Download

Comment 1 by, Aug 20 2013

Labels: Cr-Blink-Events

Comment 2 by, Sep 3 2013

Also present in 30.0.1599.22 beta

Comment 3 by, Sep 5 2013

It should probably also output "leave red" when clicking the red div to remove it.
`mouseout` is triggered when removing an element and moving the cursor again.

Comment 4 by, Sep 6 2013

Labels: M-31 OS-Mac
Status: Untriaged
Able to repro this issue on mac 10.8.4 OS. This is a non-regression issue existing since M24 chrome versions.

Comment 5 by, Sep 27 2013

Project Member
Labels: -M-31 M-32 MovedFrom-31
Moving all non essential bugs to the next Milestone.

Comment 6 by, Sep 27 2013

It might be unwise to release mouseenter/-leave to stable when it's this broken. There are js frameworks that feature detect for mouseenter to decide if they should emulate or use the native event (for example mootools), thus it's not unlikely this will break quite a few sites.

Comment 7 by, Nov 8 2013

Labels: -M-32 MovedFrom-32
This issue has already been moved once and is lower than Priority 1,therefore removing mstone.

Comment 8 by, Mar 3 2014

It seems to be the same issue here
Mouseenter/mouseleave not triggered when holding down left mouse button,
Still present in 35.0.1867.2 canary

Comment 9 by, Apr 17 2014

Please fix it.

Comment 10 by, May 1 2014

>>There are js frameworks that feature detect for mouseenter to decide if they should emulate...

I work on one of these frameworks and feature-detect for mouseenter/mouseleave, and I agree this needs serious fixing. Even without removing or adding elements, mouseenter/mouseleave should not behave differently if a button is down.

Comment 11 by, Feb 6 2015

:bump: Can anyone take a look at this?

jsFiddle of attached example: .

Please see also the comment I just made on the related  Issue 122746 :

Comment 12 by, Feb 6 2015

The problem has been fixed in Safari 8.0.3.  Maybe the patch for WebKit's fix could be applied to Chrome?

Comment 13 by, Feb 6 2015

Here is WebKit's bug report for this issue:

The patch was reverted, though.  I'm not sure why the issue is fixed in Safari.

Comment 14 by, Apr 30 2015

Labels: Cr-Blink-Input

Comment 15 by, May 16 2015

Blockedon: chromium:488886

Comment 16 by, Jul 15 2015

Labels: -Cr-Blink-Events

Comment 17 by, Aug 12 2015

Blockedon: chromium:515921
Status: Assigned
Mustaq is looking at this in relation to  issue 515921 .

Comment 18 by, Aug 12 2015

Related to  issue 333623 

Comment 19 by, Aug 12 2015


Comment 20 by, Aug 12 2015

The mouse entry/exit events (mouseenter/leave/over/out) are not sent until a mousemove has occurred. Seems we need to call EventHandler::updateMouseEventTargetNode() after DOM changes. Looking into this now.

Comment 21 by, Aug 12 2015

Just realized that blindly updating the mouse entry/exit state after any DOM changes could be overkill since the newly sent mouse entry/exit events could cause further DOM changes. But may be it's fine to be overkill for cyclic changes in DOM?

Comment 22 by, Aug 17 2015

Owner: ----

Comment 23 by, Jan 12 2017

Labels: -Pri-2 Hotlist-Input-Dev Pri-3
Status: Available (was: Assigned)
This will be fixed when issue 488886 is fixed.

Comment 24 by, Aug 2 2017

Status: Fixed (was: Available)

Comment 25 by, Aug 2 2017

This isn't fixed until the feature is enabled isn't it?

Comment 26 by, Aug 2 2017

Yes, I tested it it works when the feature is enabled. Should I update it after the feature is enabled, now it is experimental, when should we update its status?

Sign in to add a comment