Foros del Web » Programando para Internet » Javascript »

Algo extraño con un árbol desplegable

Estas en el tema de Algo extraño con un árbol desplegable en el foro de Javascript en Foros del Web. Este es un código simple un UL con algunos LI dentro y un UL dentro del 1er UL, si corren el código los bordes rojos ...
  #1 (permalink)  
Antiguo 20/09/2009, 09:11
 
Fecha de Ingreso: enero-2009
Mensajes: 56
Antigüedad: 16 años
Puntos: 1
Pregunta Algo extraño con un árbol desplegable

Este es un código simple un UL con algunos LI dentro y un UL dentro del 1er UL, si corren el código los bordes rojos son de los UL y los azules de los LI, pero lo raro es que si ejecutamos este código en ie6 los UL que están dentro de un UL son hijos de un LI, mientras en firefox son Hermanos. Alguien sabe a que se debe esto y si puedo hacer que siempre sean hermanos o hijos????

Código:
<style type="text/css">
	ul{
		border:solid 1px red;
	}
	li{
		border:solid 1px blue; margin:2px;
		list-style-type:none;
	}
	.invisible{
		/*display:none;*/
	}
	.visible{
		display:block;
	}
</style>
<ul class='invisible'>
	<li class='clasificacion'>
		<a href='javascript: void 0;' onclick=''>
			<img src='mas.jpg'></img>
		</a>
		clasif1
	</li>
	<ul class='invisible'>
		<li>
			<input type='radio' name='clasificacion1'/>
			clasif1-1
		</li>
		<li class='clasificacion'>
			<a href='javascript: void 0;' onclick=''>
				<img src='mas.jpg'></img>
			</a> clasif1-2
		</li>
		<ul class='invisible'>
			<li>
				<input type='radio' name='clasificacion1'/>
				clasif1-2-1
			</li>
			<li>
				<input type='radio' name='clasificacion1'/>
				clasif1-2-2
			</li>
		</ul>
	</ul>
</ul>
  #2 (permalink)  
Antiguo 20/09/2009, 09:24
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años, 8 meses
Puntos: 834
Respuesta: Algo extraño con un árbol desplegable

Me pasó algo similar, pero no sólo con Explorer 6 sino con Explorer 7 (Explorer 8 reacciona bien). Evidentemente, un bug del navegador...
Tuve que crear un parche así (quizá te sirva de referencia):
Código:
function getProx(obj) {
	if(obj && obj.parentNode.nextSibling && 
	obj.parentNode.nextSibling.nodeName.toLowerCase()=='ul')
		return obj.parentNode.nextSibling;
	/*Para explorer 6 y 7, nextSibling es LI(?), entonces emparchamos así:*/
	var parte=obj.parentNode.parentNode.innerHTML.toString().split(obj.id.toString())[1];
	var result=parte.match(/\bid=[^>\s]+\b/g); 
	if( result && result[0]){
		var ret=document.getElementById(result[0].split('id=').join('').split("'").join('').split('"').join('').split('src=').join('').split(' ').join('').toString());
		if(ret && ret.nodeName && ret.nodeName.toLowerCase()=='ul')
			return ret; 
	}
	return false;
}

Última edición por Panino5001; 20/09/2009 a las 11:27
  #3 (permalink)  
Antiguo 20/09/2009, 10:23
 
Fecha de Ingreso: enero-2009
Mensajes: 56
Antigüedad: 16 años
Puntos: 1
Respuesta: Algo extraño con un árbol desplegable

Gracias por la respuesta, estoy pensando en usar tú código o ver si le agrego un LI a cada UL, para que quede igual en todos los navegadores, saludos.
  #4 (permalink)  
Antiguo 20/09/2009, 10:39
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 9 meses
Puntos: 1485
Respuesta: Algo extraño con un árbol desplegable

despues de todo no valida. quiero decir, un UL no puede ser padre directo de otro UL. por lo que dentro de un UL solo se acepta LI y dentro de LI cualquier contentido. o sea, para mi iexplorer esta analizando bien el codigo a pesar de como esta escrito.
Código:
<ul>
<li><ul>...</ul></li>
</ul>
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 20/09/2009, 11:10
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 9 meses
Puntos: 1485
Respuesta: Algo extraño con un árbol desplegable

tendre que verificarlo con mas detenimiento a ver que tal me resulta a mi. ¿algun dato adicional que me queras dar para realizar el experimiento?
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:31.