There is an asymmetry to EnterLeave event plugin. Since mouseenter is created from the relativeTarget of the mouseout event it fires even though the target is disabled. Since the mouseleave is the inverse, i.e requires that the disabled element fire a mouseout, it doesn't fire a mouseleave for the disabled element.
I am pretty sure the correct behavior here is that neither event should fire if its target is disabled, since this mirrors mouseout. No idea if none-chrome browsers have the same behavior for which mouse events fire on disabled elements.
Additional caveat I just realized, React is probably also not firing mousenter events in the case where the mouse leaves a disabled element into a non disabled element
There is an asymmetry to EnterLeave event plugin. Since
mouseenteris created from the relativeTarget of themouseoutevent it fires even though the target is disabled. Since themouseleaveis the inverse, i.e requires that the disabled element fire a mouseout, it doesn't fire amouseleavefor the disabled element.I am pretty sure the correct behavior here is that neither event should fire if its target is disabled, since this mirrors
mouseout. No idea if none-chrome browsers have the same behavior for which mouse events fire on disabled elements.Additional caveat I just realized, React is probably also not firing
mousenterevents in the case where the mouse leaves a disabled element into a non disabled element