W3C home > Mailing lists > Public > whatwg@whatwg.org > March 2007

[whatwg] Adding mouseenter and mouseleave events

From: Magnus Kristiansen <magnusrk+whatwg@pvv.org>
Date: Thu, 15 Mar 2007 12:25:52 +0100
Message-ID: <op.to791efl6iodd8@tzeentch.studby.ntnu.no>
On Thu, 15 Mar 2007 02:02:46 +0100, Gareth Hay <gazhay at gmail.com> wrote:

> On 15 Mar 2007, at 00:30, Magnus Kristiansen wrote:
>
>> Mouseover/out events will trigger when elements contained inside the  
>> EventTarget are hovered, and then bubble up. This is contrary to the  
>> most obvious interpretation, as you are still inside (over) the  
>> targeted element. IE supports two events, mouseenter[1] and  
>> mouseleave[2], which solve this problem by not bubbling.
>>
>> It is possible to work around the problem by using target/relatedTarget  
>> and walking up the DOM tree. However, this requires extra code for  
>> every event handler. Besides, these events were often not meant to be  
>> generated in the first place, by the intent of the author.
>>
>> I have no statistics for how often mouseover/out are used with and  
>> without intent of bubbling, but the anecdotal evidence from my own  
>> experience has never found me wanting it.
>>
>> I suggest these two events be added to the web applications spec.
>>
>> [1] http://msdn.microsoft.com/workshop/author/dhtml/reference/ 
>> events/onmouseenter.asp
>> [2] http://msdn.microsoft.com/workshop/author/dhtml/reference/ 
>> events/onmouseleave.asp
>>

> Can't you just return false from an event handler to prevent further  
> bubbling?
>

As mentioned there are workarounds, although I don't think attempting to  
add anti-bubbling handlers on every descendant element is a reliable one.  
This unwanted bubbling puts extra load on the user agent for processing  
it, and the script author to work around it, when removing the root cause  
is easily possible by making the event non-bubbling to begin with.

-- 
Magnus Kristiansen
"Don't worry; the Universe IS out to get you."
Received on Thursday, 15 March 2007 04:25:52 UTC

This archive was generated by hypermail 2.4.0 : Wednesday, 22 January 2020 16:58:53 UTC