Make sure that mousing over XUL elements results in no trigger of a mouseleave. Fixes #6013.

This commit is contained in:
jeresig 2010-02-13 05:45:48 -05:00
parent dd5c26304a
commit 6a82f2ae63

View file

@ -604,27 +604,24 @@ var withinElement = function( event ) {
// Check if mouse(over|out) are still within the same parent element
var parent = event.relatedTarget;
// Traverse up the tree
while ( parent && parent !== this ) {
// Firefox sometimes assigns relatedTarget a XUL element
// which we cannot access the parentNode property of
try {
// Firefox sometimes assigns relatedTarget a XUL element
// which we cannot access the parentNode property of
try {
// Traverse up the tree
while ( parent && parent !== this ) {
parent = parent.parentNode;
// assuming we've left the element since we most likely mousedover a xul element
} catch(e) {
break;
}
}
if ( parent !== this ) {
// set the correct event type
event.type = event.data;
if ( parent !== this ) {
// set the correct event type
event.type = event.data;
// handle event if we actually just moused on to a non sub-element
jQuery.event.handle.apply( this, arguments );
}
// handle event if we actually just moused on to a non sub-element
jQuery.event.handle.apply( this, arguments );
}
// assuming we've left the element since we most likely mousedover a xul element
} catch(e) { }
},
// In case of event delegation, we only need to rename the event.type,