mouseenter和mouseleave

摘自jQuery的一段代码:

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 )
		try { parent = parent.parentNode; }
		catch(e) { parent = this; }

	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 );
	}
};

附带event.relatedTarget的实现方法:

// Add relatedTarget, if necessary
if ( !event.relatedTarget && event.fromElement )
	event.relatedTarget = event.fromElement == event.target ? event.toElement : event.fromElement;
Leave a comment

3 Comments.

Leave a Reply


[ Ctrl + Enter ]

Trackbacks and Pingbacks: