Foros del Web » Programando para Internet » Javascript »

el problema es con un arbol de opciones de listas desplegables

Estas en el tema de el problema es con un arbol de opciones de listas desplegables en el foro de Javascript en Foros del Web. hola amigos!!! saludos a todos!!! el problema es con un arbol de opciones de listas desplegables, tengo un arbol con todos los estados de la ...
  #1 (permalink)  
Antiguo 25/05/2009, 08:55
 
Fecha de Ingreso: junio-2008
Mensajes: 50
Antigüedad: 15 años, 11 meses
Puntos: 0
el problema es con un arbol de opciones de listas desplegables

hola amigos!!! saludos a todos!!!

el problema es con un arbol de opciones de listas desplegables, tengo un arbol con todos los estados de la republica mexicana y dentro de cada estado tengo sus municipios correspondientes, entonces como ven tengo un arbol un poco grande que al abrir todas sus opciones no caben dentro de la pantalla. entonces el problema con este árbol es que al dar clic en una de sus ramas (para ver las opciones correspondientes) me manda al inicio de la pagina, como si actualizara la pagina, imagínense si estoy en la ultima opción del árbol y le doy clic me manda al inicio de la pagina y para ver las opciones que se desplegaron tengo que ir al final de la pagina manualmente.

mi arbol de opciones usa el mismo codigo del menu que esta en este tutorial www punto dhtmlya punto com punto ar/temarios/descripcion.php?cod=70&punto=71

estructura de mi arbol de opciones:

Aguascalientes
Baja California
Baja California Sur
Campeche
Coahuila
Colima
Chiapas
Chihuahua
D. F.
Durango
Estado de México
Guanajuato
Guerrero
Hidalgo
Jalisco
Michoacán
Erongarícuaro
Gabriel Zamora
Hidalgo
Huandacareo
Huaniqueo
Huetamo
Huiramba
Indaparapeo
Irimbo
Ixtlán
Jacona
Jiménez
Jiquilpan
José Sixto Verduzco
Juárez
Jungape
La Huacana

Morelos
Nayarit
Nuevo León
Oaxaca
Puebla
Querétaro
Quintana Roo
San Luis Potosí
Sinaloa
Sonora
Tabasco
Tamaulipas
Tlaxcala
Veracruz
Yucatán
Zacatecas


les agradecere su ayuda!!!!!!
  #2 (permalink)  
Antiguo 25/05/2009, 23:00
 
Fecha de Ingreso: junio-2008
Mensajes: 50
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: el problema es con un arbol de opciones de listas desplegables

hola amigos tal!!!!!!!!, no me explique bien en mi problema? o de plano no tiene solucion? otra preguntota al momento de preguntar hay una parte donde puedo subir una imagen(para explicar mejor mi tema)?

saludos!!!!!!!!!!!
  #3 (permalink)  
Antiguo 26/05/2009, 06:38
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: el problema es con un arbol de opciones de listas desplegables

¿Tienes subida tu página a algún servidor? Así puedes darnos la dirección.

Lo de subir imágenes, revisa esto: http://www.forosdelweb.com/f5/como-a...e-foro-566872/
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #4 (permalink)  
Antiguo 26/05/2009, 09:18
 
Fecha de Ingreso: junio-2008
Mensajes: 50
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: el problema es con un arbol de opciones de listas desplegables

muchas gracias david por responder!!! ya tengo la url de mi imagen pero foros del web no me deja poner link en mis mensajes, se me hace que es por no tener 30 mensajes en sus foros.

y mi pagina no la tengo en ningun servidor, solo se encuentra en mi pc.

les pondre el codigo que crea mi arbol de opciones, para ver si me pueden hechar la mano!!!

mi arbol de opciones con listas desplegables funciona bien solo tiene un molesto defecto, que sucede al darle clic en cualquiera de sus ramas para ver sus opciones desplegables me manda al inicio de la pagina(en la parte superior inicial de la pagina pagina), ojo no es una refrecada de pagina.

por ejemplo tengo dos estado, dentro de cada estado se encuentran municipios

michoacan
  • paracuaro
  • apatzingan
  • uruapan
  • zamora

jalisco
  • tepatitlan
  • zapopan
  • ocotlan

al entrar en mi pagina aparece la lista de estados y municipios de la siguiente forma:

+michoacan
+jalisco

si doy clic en jalisco la lista de vera de la siguiente manera
+michoacan
jalisco
  • tepatitlan
  • zapopan
  • ocotlan

si doy de nuevo clic en michoacan seria de la siguente forma

michoacan
  • paracuaro
  • apatzingan
  • uruapan
  • zamora

jalisco
  • tepatitlan
  • zapopan
  • ocotlan

si doy clic en jalisco pasa esto

michoacan
  • paracuaro
  • apatzingan
  • uruapan
  • zamora
+jalisco

entonces el molesto defecto aparece cada ves que le doy clic al nombre de un estado me manda al inicio de la pagina(como si fuera una refrescada pero no lo es, solo me manda al inicio de la pagina). el arbol de opciones lo creo al iniciar la pagina.

/////////////////codigo donde se crea mi arbol html y php //////////////////////////////

<div id="menu1">
<ul>
<li><a href="#">ESTADOS >>></a>
<ul>
<? $registros=mysql_query('select estado from estados',$conexion) or
die('Problemas en el select:'.mysql_error());
while ($reg=mysql_fetch_array($registros))
{
?>
<li><a href="#"> <? echo ($reg["estado"]); ?> </a>
<ul>
<li><a href="#">Municipios </A>
<ul>
<? $registros2=mysql_query('select id_municipio, des_municipio from municipios where estado="'.$reg["estado"].'"',$conexion) or die('Problemas en el select:'.mysql_error());
while ($reg2=mysql_fetch_array($registros2))
{
?>
<li><input type="checkbox" name="municipios[]" value="<? echo($reg2["id_municipio"]);?>"><? echo($reg2["des_municipio"]);?> </li>
<? } ?>
</ul>
</li>

<li><a href="#">Distritos Rurales </A>
<ul>
<? $registros2=mysql_query('select id_disrural,des_disrural from distrito_rural where estado="'. $reg["estado"].'"',$conexion) or die('Problemas en el select:'.mysql_error());
while ($reg2=mysql_fetch_array($registros2))
{
?>
<li><input type="checkbox" name="d_rural[]" value="<? echo($reg2["id_disrural"]);?>"><? echo($reg2["des_disrural"]);?></li>
<? } ?>
</ul>
</li>

<li><a href="#">Distritos de Riego </a>
<ul>
<? $registros2=mysql_query('select id_disriego,des_disriego from distrito_riego where estado="'. $reg["estado"].'"',$conexion) or die('Problemas en el select:'.mysql_error());
while ($reg2=mysql_fetch_array($registros2))
{
?>
<li><input type="checkbox" name="d_riego[]" value="<? echo($reg2["id_disriego"]);?>"><? echo($reg2["des_disriego"]);?></li>
<? } ?>
</ul>
</li>

<li><a href="#">Region Agroecológica </a>
<ul>
<? $registros2=mysql_query('select des_region from region_agro where estado="'.$reg["estado"].'"',$conexion) or die('Problemas en el select:'.mysql_error());
while ($reg2=mysql_fetch_array($registros2))
{
?>
<li><input type="checkbox" name="<? echo ($reg["estado"]);echo($reg2[ "des_region"])?>004"> <? echo($reg2["des_region"]); ?> </li>
<? } ?>
</ul>
</li>
</ul>
</li>

<?
}
?>
</ul>
</li>
</ul>
</div> <!--div menu1 -->



//////////////codigo js que maneja eventos de mi arbol///////////////////////////

addEvent(window,'load',inicializarEventos,false);

function inicializarEventos()
{
inicializarMenu('menu1');

}

function inicializarMenu(m)
{
var ob=document.getElementById(m);
var menu=ob.getElementsByTagName('ul');
for(f=1;f<menu.length;f++)
{
menu[f].style.display='none';
}
var enlaces=ob.getElementsByTagName('a');
for(f=0;f<enlaces.length;f++)
{
addEvent(enlaces[f],'click',itemSeleccionado,false);
}
}
function itemSeleccionado(e)
{
var enlace;
if (window.event)
enlace=window.event.srcElement;
else
enlace=e.target;
var padre=enlace.parentNode;
var ul=padre.getElementsByTagName('ul');
if (ul.length>0)
{
if (ul[0].style.display=='none')
ul[0].style.display='block';
else
ul[0].style.display='none';
}
}
  #5 (permalink)  
Antiguo 26/05/2009, 09:21
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: el problema es con un arbol de opciones de listas desplegables

Es por los href="#". Normalmente, cuando la intención no es enlazar, es mejor usar otras etiquetas en lugar de <a>.

Por otro lado, puedes cancelar la acción del evento para evitar que siga el enlace usando el método preventDefault() (para los navegadores que respetan el estándar) y returnValue = false para Internet Explorer.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #6 (permalink)  
Antiguo 26/05/2009, 10:31
 
Fecha de Ingreso: junio-2008
Mensajes: 50
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: el problema es con un arbol de opciones de listas desplegables

gracias por tu respuesta david!!!! estoy intentando cancelar el envio pero sigue haciendo lo mismo!!!! lo intente cancelar con el siguiente codigo!! pero no funciono!!

function itemSeleccionado(e)
{
var enlace;
if (window.event)
{
enlace=window.event.srcElement;
enlace.returnValue = false;
}
else
{
enlace=e.target;
enlace.preventDefault();

}
var padre=enlace.parentNode;
var ul=padre.getElementsByTagName('ul');
if (ul.length>0)
{
if (ul[0].style.display=='none')
ul[0].style.display='block';
else
ul[0].style.display='none';
}
}


tambien intente canselarlo de la siguiente forma pero sigue igual!! en que parte iria la cancelacion david?

function itemSeleccionado(e)
{
var enlace;
if (window.event)
{
enlace=window.event.srcElement;

}
else
{
enlace=e.target;
}
var padre=enlace.parentNode;
var ul=padre.getElementsByTagName('ul');
if (ul.length>0)
{
if (ul[0].style.display=='none')
ul[0].style.display='block';
else
ul[0].style.display='none';
}

if (window.event)
{
padre.returnValue = false;
}
else
{
padre.preventDefault();
}

}
  #7 (permalink)  
Antiguo 26/05/2009, 10:34
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: el problema es con un arbol de opciones de listas desplegables

Es que debes hacerlo con el manejador del evento, no en el objeto.

En este caso, tu manejador de evento está en "e", por lo que debería ser:
Código javascript:
Ver original
  1. if (e.preventDefault) {
  2.     e.preventDefault();
  3. } else {
  4.     e.returnValue = false;
  5. }
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #8 (permalink)  
Antiguo 26/05/2009, 10:54
 
Fecha de Ingreso: junio-2008
Mensajes: 50
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: el problema es con un arbol de opciones de listas desplegables

jejeje soy muy novato en esto, me falta mucha experiencia!!! muchísimas gracias por compartir conocimiento David!!!!!!!!! problema solucionado!!!!!!!!!!!


:apla uso:
  #9 (permalink)  
Antiguo 26/05/2009, 10:55
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: el problema es con un arbol de opciones de listas desplegables

Me alegra que lo hayas solucionado.

Saludos.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
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 09:21.