Foros del Web » Programando para Internet » Javascript »

Mostrar/Ocultar div no funciona en explorer

Estas en el tema de Mostrar/Ocultar div no funciona en explorer en el foro de Javascript en Foros del Web. Hola foreros! Tengo un problema con una función para mostrar y ocultar una capa cuando les das a un enlace, seguidamente pongo el código: esto ...
  #1 (permalink)  
Antiguo 30/04/2008, 04:48
 
Fecha de Ingreso: noviembre-2006
Mensajes: 437
Antigüedad: 18 años
Puntos: 3
Mostrar/Ocultar div no funciona en explorer

Hola foreros! Tengo un problema con una función para mostrar y ocultar una capa cuando les das a un enlace, seguidamente pongo el código:

esto esta puesto en el head.
Código HTML:
<script type="text/javascript">
function toggle(obj){
var a = document.getElementById(obj);
if(a.style.display!='none'){
a.style.display='none';}
else{a.style.display ='';}}
</script> 
Código PHP:
<li><a href="#" class="taronja" onclick="toggle('masinfo<?php echo $k;?>');">[m&aacute;s informaci&oacute;n]</a></li>
                <div id="masinfo<?php echo $k;?>" style="display:none">
                    contenido....
               </div>
He revisado el código mil veces y no veo nada que pueda estar afectando al explorer, en firefox me funciona 100% pero en los explorewrs tanto el 6 como el 7 no hace nada. Espero que puedan ayudarme, he de terminarlo urgentemente.

Un saludo y gracias de antemano!
  #2 (permalink)  
Antiguo 30/04/2008, 04:53
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.489
Antigüedad: 22 años, 3 meses
Puntos: 2114
Re: Mostrar/Ocultar div no funciona en explorer

Yo uso éste código para tales menesteres, funciona en IE también.
Código:
function showhide(layer_ref) {

if (state == 'block') {
state = 'none';
}
else {
state = 'block';
}
if (document.all) { //IS IE 4 or 5 (or 6 beta)
eval( "document.all." + layer_ref + ".style.display = state");
}
if (document.layers) { //IS NETSCAPE 4 or below
document.layers[layer_ref].display = state;
}
if (document.getElementById &&!document.all) {
hza = document.getElementById(layer_ref);
hza.style.display = state;
}
}
Luego en el enlace, pones javascript:showhide('nombrecapa').
  #3 (permalink)  
Antiguo 30/04/2008, 04:59
 
Fecha de Ingreso: noviembre-2006
Mensajes: 437
Antigüedad: 18 años
Puntos: 3
Re: Mostrar/Ocultar div no funciona en explorer

Muchas gracias Bonez! El state de donde sale por eso?? me tira error..

Un saludo!
  #4 (permalink)  
Antiguo 30/04/2008, 05:06
 
Fecha de Ingreso: noviembre-2006
Mensajes: 437
Antigüedad: 18 años
Puntos: 3
Re: Mostrar/Ocultar div no funciona en explorer

Ya lo he arreglado, igualmente no me funciona en los explorers..esto es muy raro la verdad... ALguien tiene alguna idea?

Un saludo!
  #5 (permalink)  
Antiguo 30/04/2008, 05:08
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 9 meses
Puntos: 772
Re: Mostrar/Ocultar div no funciona en explorer

Hola komodo

He probado tu código en IE7 y me ha funcionado bien ¿Te da algún error?

Saludos,
  #6 (permalink)  
Antiguo 30/04/2008, 05:08
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.489
Antigüedad: 22 años, 3 meses
Puntos: 2114
Re: Mostrar/Ocultar div no funciona en explorer

Si que es raro, porque a mi me va perfectamente. A mi, y a todos los usuarios de una web que tengo, porque es para mostrar/ocultar un formulario de identificación.

El DIV tiene que tener el mismo ID que le pases por la función.
  #7 (permalink)  
Antiguo 30/04/2008, 05:10
 
Fecha de Ingreso: noviembre-2006
Mensajes: 437
Antigüedad: 18 años
Puntos: 3
Re: Mostrar/Ocultar div no funciona en explorer

Puede ser debido a que la pagina donde llamo a la función esta llamada mediante un include en la pagina principal?No me da ningun error, simplemente no hace nada...

Gracias por las respuestas
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 18:29.