Foros del Web » Programando para Internet » Javascript »

Javascript que oculta divs (en ie funciona y en firefox no)

Estas en el tema de Javascript que oculta divs (en ie funciona y en firefox no) en el foro de Javascript en Foros del Web. Bueno tras mucho buscar en internet, veo esta página como una de las que mejores soluciones ofrece gracias a la gente que la habita. Gracias ...
  #1 (permalink)  
Antiguo 23/09/2008, 09:23
 
Fecha de Ingreso: septiembre-2008
Mensajes: 7
Antigüedad: 15 años, 7 meses
Puntos: 0
Javascript que oculta divs (en ie funciona y en firefox no)

Bueno tras mucho buscar en internet, veo esta página como una de las que mejores soluciones ofrece gracias a la gente que la habita. Gracias a todos por vuestro trabajo desinteresado.

El caso es que estoy empezando con js, y estoy atascado en un código, el cual consiste en varios divs que se ocultan dentro de un div invisible y un div visible que muestra la información. Para ello uso una tabla a modo de tabs (pestañas). Tras conseguir que me funcione en ie, me he dado cuenta que en firfox no me va ¿alguien sabe por qué? :s

Código PHP:
<SCRIPT LANGUAGE="JavaScript">
//numdiv para diferenciar entre id de divs data0,data1...
function hide(numdiv){
    
obj=document.getElementById('data'+numdiv);
    
document.getElementById('divoculto').appendChild(obj);
    
document.getElementById("web").style.visibility='hidden';
}
function 
ver(numdiv){
    
obj=document.getElementById('data'+numdiv);
    
document.getElementById('divvisible').appendChild(obj);
    if (
numdiv 5) {
        
document.getElementById("web").style.visibility='visible';
    }
}
</script>

<style type="text/css">table{background-color:#fff;font-weight:bold;text-align:center;font-size:12px;cursor:hand;}td{background-color:#ececdc;width:100px;height:20px;padding:3px;}</style>

<CENTER><TABLE>
<TR>
    <TD onclick="hide('0');hide('2');hide('3');hide('4');ver('1');hide('5');">Probando1</TD>
    <TD onclick="hide('0');hide('1');hide('3');hide('4');ver('2');hide('5');">Probando2</TD>
    <TD onclick="hide('0');hide('2');hide('2');hide('4');ver('3');hide('5');">Probando3</TD>
    <TD onclick="hide('0');hide('2');hide('3');hide('3');ver('4');hide('5');">Probando4</TD>
    <TD onclick="hide('1');hide('2');hide('3');hide('4');ver('0');hide('5');">Probando0</TD>
    <TD onclick="hide('0');hide('1');hide('2');hide('3');hide('4');ver('5');">Web</div></TD>
</TR></TABLE></CENTER>

<div id="divvisible" style="visibility:visible;">
    <div id="data0">Para mostrar datos por defecto. Bienvenido</div>
</div>

<div id="divoculto" style="visibility:hidden;">
    <div id="data1">Datos, datos y mas datos...</div>
    <div id="data2">222...2222...Datos, datos y mas datos...</div>
    <div id="data3">el 3!!!</div>
    <div id="data4">4 fantasticos</div>
    <div id="data5"><a href="http://www.google.es" target="web">web</a><BR><iframe name="web" height="100%" width="100%"></iframe></div>
</div> 
Gracias de antemano a todos, sólo por el mero hecho de leerlo
  #2 (permalink)  
Antiguo 23/09/2008, 10:22
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Javascript que oculta divs (en ie funciona y en firefox no)

Hola:

En principio, veo que quieres añadir un objeto que se encuentra activo... la cosa es un poco más compleja... ese objeto deberías clonarlo y cambiarle el id (deben ser únicos)

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 23/09/2008, 10:29
Avatar de EPROM  
Fecha de Ingreso: abril-2005
Mensajes: 51
Antigüedad: 19 años
Puntos: 3
Respuesta: Javascript que oculta divs (en ie funciona y en firefox no)

Funciona en ambas, solo que explorer le da lo mismo el "null" de document.getElementById("web") ejjejeje

Prueba asi:

Código:
function hide(numdiv){
    obj=document.getElementById('data'+numdiv);
    document.getElementById('divoculto').appendChild(obj);
}
function ver(numdiv){
    obj=document.getElementById('data'+numdiv);
    document.getElementById('divvisible').appendChild(obj);
}

Última edición por EPROM; 23/09/2008 a las 10:32 Razón: document.getElementById("web") no servía de nada
  #4 (permalink)  
Antiguo 23/09/2008, 16:55
 
Fecha de Ingreso: septiembre-2008
Mensajes: 7
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Javascript que oculta divs (en ie funciona y en firefox no)

hhhmmmm gracias a ambos por las respuestas, pero creo que no me he explicado bien. web es un iframe que contiene un enlace a otra página externa (ver data5), ese document.getElementById("web") es para evitar que al cargar el iframe (que se encuentra en un div oculto) se me quede estático por mucho que oculte el div en el que está metido.

El problema real es que en firefox, al pulsar sobre cualquiera de las 'pestañas' (celdas) me desaparece el contenido por defecto, pero no me aparece el contenido del div que quiero mostrar, es como si ejecutara la función hide() pero no la ver().

Seguiré investigando, de nuevo gracias a ambos.
Saludos.
  #5 (permalink)  
Antiguo 23/09/2008, 21:29
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: Javascript que oculta divs (en ie funciona y en firefox no)

Es que tu iframe no tiene un atributo id mientras que estás intentando obtener su referencia usando getElementById("web"), deberías poner el atributo id respectivo. En IE puede que funcione porque ese navegador suele confundir el name con el id.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #6 (permalink)  
Antiguo 24/09/2008, 09:15
 
Fecha de Ingreso: septiembre-2008
Mensajes: 7
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Javascript que oculta divs (en ie funciona y en firefox no)

Así es David!!! Muchas gracias!!!Eres grande!!!

PD: ¡qué fallo más tonto! :s
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 12:31.