In this case, use 'mouseleave' instead of 'mouseout'. Quoting the doc:
The mouseleave event is fired when a pointing device (usually a mouse) is moved off the element that has the listener attached.
The mouseout event is fired when a pointing device (usually a mouse) is moved off the element that has the listener attached or off one of its children.
Note that mouseleave
support has been added to Blink (Chrome/Opera 15) quite recently, that's why it's not available in Chrome 29 (but is already there in dev Chrome).