Web 2.0 Developer & PHP Programmer (ZCE)
June 3, 2009

Gli eventi onMouseEnter & onMouseLeave su tutti i browser

Utilizzare gli eventi onMouseEnter & onMouseLeave non solo su Internet Explorer non sarà più un problema! Basta una funzioncina javascript e prototype.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
function extendMouseEvents(e) {
	var elem = e.element();
	var target = e.relatedTarget;
	var p = stop = null;
	if (!target || (elem !== target && !target.descendantOf(elem))) {
		if (target && elem.descendantOf(target)) stop = target.childElements();
		else if (target) {
			p = elem.up();
			while (!target.descendantOf(p)) p = p.up();
			if (target.descendantOf(p)) stop = p.childElements();
		}
		if (stop) stop.invoke('observe', 'custom:mouseleave', function(e) { e.stop(); });
		elem.fire('custom:mouseleave');
		if (stop) stop.invoke('stopObserving', 'custom:mouseleave', function(e) { e.stop(); });
	}
	p = stop = null;
	if (target && !elem.descendantOf(target)) {
		if (!target.descendantOf(elem)) {
			p = target.up();
			while (!elem.descendantOf(p)) p = p.up();
			stop = p.childElements();
		} else stop = elem.childElements();
		if (stop) stop.invoke('observe', 'custom:mouseenter', function(e) { e.stop(); });
		target.fire('custom:mouseenter');
		if (stop) stop.invoke('stopObserving', 'custom:mouseenter', function(e) { e.stop(); });
	}
}
Event.observe(document, 'mouseout', extendMouseEvents);
L'utilizzo è semplice:
1
2
3
Event.observe(element, 'custom:mouseenter', my_function_1);
//oppure
Event.observe(element, 'custom:mouseleave', my_function_2);

Bookmarks: bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark

Nessun commento

© Copyright 2008 - 2010 Fabio Cicerchia. Powered by Fluxy Framework using the theme bbv1 (customized by Fabio Cicerchia).