Foros del Web » Programando para Internet » Javascript »

sistema de pestañas->inicio

Estas en el tema de sistema de pestañas->inicio en el foro de Javascript en Foros del Web. Buenos días No tengo mucha idea de javascript, así que quizá mi duda parezca absurda. Estoy haciendo una aplicación web en la que tengo un ...
  #1 (permalink)  
Antiguo 07/07/2014, 01:44
emr
 
Fecha de Ingreso: mayo-2005
Mensajes: 13
Antigüedad: 18 años, 11 meses
Puntos: 0
sistema de pestañas->inicio

Buenos días

No tengo mucha idea de javascript, así que quizá mi duda parezca absurda. Estoy haciendo una aplicación web en la que tengo un sistema de pestañas para que el usuario se desplace entre las distintas opciones.
Una de esas opciones le permite introducir datos en una BdD, tras rellenar unos campos y pulsar un botón. Quiero que al pulsar ese botón, además de grabar en la BdD vaya a una determinada pestaña. Hago los siguiente (reconozco que es código que he cogido de Internet...y no encuentro el fallo...)

en el head añado esto

<script type="text/javascript" src="js/tab.js"></script>


y al final de la página añado esto

<script type="text/javascript">
tab("tab_02","panel_02");
</script>

donde tab_02 es el identificador del <li> (dentro del <ul>)
y panel_02 es el identificador del <div> del contenido.




el archivo tab.js tiene el siguiente código:

function tab(pestana,panel)
{
pst = document.getElementById(pestana);
pnl = document.getElementById(panel);
psts = document.getElementById('tabs').getElementsByTagNa me('li');
pnls = document.getElementById('paneles').getElementsByTa gName('div');

// eliminamos las clases de las pestañas
for(i=0; i< psts.length; i++)
{
// Para evitar meternos en temas de dom
// hacemos que la clase sea vacío
psts[i].className = '';
}

// Añadimos la clase "actual" a la pestaña activa
pst.className = 'actual';

// ocultamos todos los paneles
for(i=0; i< pnls.length; i++)
{
pnls[i].style.display = 'none';
}

// Y mostramos el panel que nos interesa
pnl.style.display = 'block';
}



Por más que le he dado vueltas, no entiendo por qué no me funciona....:S....

Gracias
  #2 (permalink)  
Antiguo 07/07/2014, 02:55
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: sistema de pestañas->inicio

¿Y si colocas la línea en donde incluyes al archivo tab.js al final del documento como hiciste con la llamada a la función? Debes de saber que el código se carga de arriba hacia abajo, por lo que en tu caso carga primero el código JS y luego los elementos del DOM, entonces, el código JS no afectaría a ninguno de los elementos pues estos todavía no existen. Coloca todo el código JS justo antes de la etiqueta </body>.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 07/07/2014, 03:44
emr
 
Fecha de Ingreso: mayo-2005
Mensajes: 13
Antigüedad: 18 años, 11 meses
Puntos: 0
Respuesta: sistema de pestañas->inicio

Gracias por la propuesta....pero sigue sin funcionar..

He probado a poner
<script type="text/javascript" src="js/tab.js"></script>
<script type="text/javascript">
tab("tab_04","panel_04");
</script>


y

<script type="text/javascript">
tab("tab_04","panel_04");
</script>
<script type="text/javascript" src="js/tab.js"></script>



antes de </body>....pero nada...:(
  #4 (permalink)  
Antiguo 07/07/2014, 03:52
emr
 
Fecha de Ingreso: mayo-2005
Mensajes: 13
Antigüedad: 18 años, 11 meses
Puntos: 0
Respuesta: sistema de pestañas->inicio

es más...quitando la línea <script type="text/javascript" src="js/tab.js"></script> del <head> no me funciona...

quizá no he entendido bien lo que tenía que hacer....lo siento
  #5 (permalink)  
Antiguo 07/07/2014, 10:20
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: sistema de pestañas->inicio

Me refiero a esto:

Código HTML:
Ver original
  1. <!DOCTYPE html>
  2. <html lang = "es">
  3.     <head>
  4.         <meta charset = "utf-8" />
  5.         <title>Ejemplo</title>
  6.     </head>
  7.     <body>
  8.         <!-- Contenido -->
  9.         <script type="text/javascript" src="js/tab.js"></script>
  10.         <script type="text/javascript">
  11.             tab("tab_04","panel_04");
  12.         </script>
  13.     </body>
  14. </html>

El código JavaScript debe de ir luego del contenido de tu página para que así pueda afectarlo. Si aún así persiste el problema, pulsa la tecla F12 y en el panel que se desplegará en la parte inferior, selecciona 'Console' y vuelve a cargar la página, si hay un error, se debe de mostrar un mensaje en dicho panel (Console) que te indicará el problema.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #6 (permalink)  
Antiguo 07/07/2014, 10:36
Avatar de huertas87  
Fecha de Ingreso: marzo-2012
Ubicación: Bogotá
Mensajes: 70
Antigüedad: 12 años, 1 mes
Puntos: 2
Respuesta: sistema de pestañas->inicio

Voy a asumir que hasta el momento la funcionalidad de las pestañas está. Entonces, cuando guardes la info en la base de datos, habiendo dado click en un supuesto botón guardar, lo que debes es volver a llamar la función que tienes en tab.js, con los nuevos parametros.

Código Javascript:
Ver original
  1. <button onclick="myFunction()">Guardar</button>
  2.  
  3. function myFunction(){
  4. tab("tab_05","panel_05");
  5. }

Etiquetas: funcion, js, sistema
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 02:36.