Ver Mensaje Individual
  #11 (permalink)  
Antiguo 23/08/2008, 09:56
Avatar de Fernand0
Fernand0
 
Fecha de Ingreso: septiembre-2005
Ubicación: Buenos Aires
Mensajes: 610
Antigüedad: 19 años, 1 mes
Puntos: 19
Respuesta: Problema con Evento

Código HTML:
 <ul id="Menu0">
        	<li><a href="#">Menu</a></li>
            <li><a href="#">Menu 2</a>
            	<ul>
                	<li><a href="#">Menu 2 - 1</a></li>
                    <li><a href="#">Menu 2 - 2</a></li>
                </ul>
            </li>
            <li><a href="#">Menu 3</a>
            	<ul>
                	<li><a href="#">Menu 3 - 1</a></li>
                    <li><a href="#">Menu 3 - 2</a>
                    </li>
                    <li><a href="#">Menu 3 - 3</a></li>
                </ul>
            </li>
        </ul> 
CSS
Código:
ul.Menu {
	width: 120px;
	list-style: none;
}
ul.Menu li {
	width: 120px;
	position: relative;
}
ul.Menu li a {
	display: block;
}
ul.Menu li:hover>a {
	color: #FF9900;
}
ul.Menu ul {
	left: 120px;
	top: -2px;
	position: absolute;
	display: none;
	list-style: none;
}
Código PHP:
function MakeMenu(id)
{
    var 
LI=$(id).getElementsByTagName('LI');
    for(var 
i=0i<LI.length; ++i)
    {
        
addEvent(LI[i], 'mouseover',Show);
        
LI[i].id='LI:'+i;
    }
}

function 
Show(event)
{
    var 
ev3nt=event || window.event;
    var 
t0=ev3nt.target || ev3nt.srcElement;
    
Div=$('div');
    
    
l0c=fN(t0'LI'); Div.innerHTML+=l0c.id+'<br>';
    
    
l0c.getElementsByTagName('UL')[0].style.display='block';
}

function 
fN(idn0de)
{
    
Node=id;
    while(
Node)
    {
        if(
Node.nodeName!=n0deNode=Node.parentNode;
        else break;
    }
    return(
Node);

Resultado de moverme en Menu 3.. Menu 3 - 1 y Menu 3 - 2... pasando por esos 3 LIs me tira esto..
Cita:
LI:4
LI:5
LI:5
LI:5
LI:5
LI:4
LI:6
LI:6
8 veces se ejecuta Show()
Probe si se agregaba 1 evento por LI o mas... y no.. solo uno por LI.. en total 8 eventos.. asi que no se donde esta el problema

Por favor ayuda..

Última edición por Fernand0; 23/08/2008 a las 10:02 Razón: css sin borders y demas..