Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/10/2008, 09:52
Avatar de Dalvenjha
Dalvenjha
 
Fecha de Ingreso: febrero-2008
Ubicación: $("#oficina");
Mensajes: 692
Antigüedad: 16 años, 2 meses
Puntos: 53
Problema con Menú desplegable e ie7

Holas a todos, soy un poco novato con el javascript, y tengo un código para un menú desplegable que hice, me funciona de plicula con firefox, chrome, opera y safari, el problema es que no funcionaba con ie6, asi que hice otro menú para ie6, y los puse alternadamente mediante CSS. Ahora bien, e el ie7 no me funka de ninguna de las dos maneras, voy a poner los códigos del javascript y el de los elementos que los lanzan. Quisiera una ayuda para simplificar los códigos también, recién me inicio en javascript y hay algunas cosas que aún no domino.

Muchas Gracias.

Código:
var altura = 0;
	var velocidad = 10;
		function extender() {
		var objeto = document.getElementById('defecto');
		objeto.style.display = 'block';
		altura += velocidad;
		if (!(altura >= 73)) {
			objeto.style.height = altura + 'px';
			window.setTimeout ("extender();", 20);
		}
		
	}
	function contraer() {
		var objeto2 = document.getElementById('defecto');
		altura -= velocidad;
		if (!(altura <= 0)) {
			objeto2.style.height = altura + 'px';
			window.setTimeout ("contraer();", 10);
		} else {
			objeto2.style.display = 'none';
			objeto2.style.height = '0px';
		}
		
	}
	function extender_contraer () {
		if (	altura <= 0) {
			extender();
		} else {
			contraer();
		}
	}
Ese es el código para cada elemento del menú, quisiera saber como reutilizarlo para todos los elementos, por ejemplo tengo 6 elementos padres de menú, y me debo crear 6 de esos códigos, lo cúal no me gusta nada. No quiero usar suckerfish, ya que no da el efecto que he logrado con este código. Aqui pongo el del html que lo lanza.

Código:
<ul class="barmen">
<li class="ini"><a href="#" onMouseover="javascript:extender_contraer('defecto'); contraer1('defecto1'); contraer2('defecto2'); contraer3('defecto3'); contraer4('defecto4'); contraer5('defecto5'); contraer6('defecto6');" >home</a></li>
<li><a href="#" onMouseover="javascript:extender_contraer1('defecto1'); contraer('defecto'); contraer2('defecto2'); contraer3('defecto3'); contraer4('defecto4'); contraer5('defecto5'); contraer6('defecto6');" >nosotros</a></li>
<li><a href="#" onMouseover="javascript:extender_contraer2('defecto2');contraer('defecto'); contraer1('defecto1'); contraer3('defecto3'); contraer4('defecto4'); contraer5('defecto5'); contraer6('defecto6');" >divisiones</a></li>
<li><a href="#" onMouseover="javascript:extender_contraer3('defecto3');contraer('defecto'); contraer1('defecto1'); contraer2('defecto2'); contraer4('defecto4'); contraer5('defecto5'); contraer6('defecto6');" >especialización</a></li>
<li><a href="#" onMouseover="javascript:extender_contraer4('defecto4');contraer('defecto'); contraer1('defecto1'); contraer2('defecto2'); contraer3('defecto3'); contraer5('defecto5'); contraer6('defecto6');" >comunidad</a></li>
<li><a href="#" onMouseover="javascript:extender_contraer5('defecto5');contraer('defecto'); contraer1('defecto1'); contraer2('defecto2'); contraer3('defecto3'); contraer4('defecto4'); contraer6('defecto6');" >clientes</a></li>
<li><a href="#" onMouseover="javascript:extender_contraer6('defecto6');contraer('defecto'); contraer1('defecto1'); contraer2('defecto2'); contraer3('defecto3'); contraer4('defecto4'); contraer5('defecto5');" >contacto</a></li>
<li class="busca" ><a href="#">busqueda</a><img src="imagenes/mas.jpg" alt="" /></li>
</ul>
ese es para firefox.

Código:
<ul id="ier" class="barmen">
<li class="ini"><a href="#" onClick="javascript:extender_contraer('defecto');" >home</a></li>
<li><a href="#" onClick="javascript:extender_contraer1('defecto1');" >nosotros</a></li>
<li><a href="#" onClick="javascript:extender_contraer2('defecto2');" >divisiones</a></li>
<li><a href="#" onClick="javascript:extender_contraer3('defecto3');" >especialización</a></li>
<li><a href="#" onClick="javascript:extender_contraer4('defecto4');" >comunidad</a></li>
<li><a href="#" onClick="javascript:extender_contraer5('defecto5');" >clientes</a></li>
<li><a href="#" onClick="javascript:extender_contraer6('defecto6');" >contacto</a></li>
<li class="busca" ><a href="#">busqueda</a><img src="imagenes/mas.jpg" alt="" /></li>
</ul>
para ie6

Ninguno de los dos funciona en ie7 -.- debería funcionar aunque sea el segundo. :S