Foros del Web » Programando para Internet » Javascript »

Problema con switch case

Estas en el tema de Problema con switch case en el foro de Javascript en Foros del Web. Tengo un switch case que muestra y oculta capas, bien tengo lo siguiente: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original < script >   function ...
  #1 (permalink)  
Antiguo 11/01/2010, 09:16
Avatar de karlic0s  
Fecha de Ingreso: abril-2007
Ubicación: Cartagena (Murcia)
Mensajes: 241
Antigüedad: 17 años
Puntos: 18
Problema con switch case

Tengo un switch case que muestra y oculta capas, bien tengo lo siguiente:

Código Javascript:
Ver original
  1. <script>
  2.  
  3. function cambiarcapa(var) {
  4. switch (var) {
  5.     case 'inicio':
  6.        document.getElementById(inicio).style.display = block;
  7.        document.getElementById(register).style.display = none;
  8.        document.getElementById(ultima).style.display = none;
  9.        break;
  10.     case 'register':
  11.        document.getElementById(inicio).style.display = none;
  12.        document.getElementById(register).style.display = block;
  13.        document.getElementById(ultima).style.display = none;
  14.        break;
  15.     case 'ultima':
  16.        document.getElementById(inicio).style.display = none;
  17.        document.getElementById(register).style.display = none;
  18.        document.getElementById(ultima).style.display = block;
  19.        break;
  20.  
  21. }
  22. }
  23.  
  24. </script>
  25.  
  26. <a href=# onclick=cambiarcapa('inicio'); return false;><img src="images/index_03.jpg" border="0"></a>
  27. <a href=# onclick=cambiarcapa('register'); return false;><img src="images/index_04.jpg" border="0"></a>
  28. <a href=# onclick=cambiarcapa('ultima'); return false;><img src="images/index_05.jpg" border="0"></a>
  29.  
  30.  
  31. <div id="inicio">
  32. </div>
  33. <div id="register">
  34. </div>
  35. <div id="ultima">
  36. </div>

Directamente no me funciona nada, ni bien ni mal, alguien podría decirme en que me estoy equivocando?


Un saludo y gracias por la respuesta de antemano.
  #2 (permalink)  
Antiguo 11/01/2010, 09:24
Avatar de ceSharp  
Fecha de Ingreso: octubre-2008
Ubicación: Madrid
Mensajes: 495
Antigüedad: 15 años, 5 meses
Puntos: 66
Respuesta: Problema con switch case

hola Karlicos,

estás usando una palabra reservada ( var ) como nombre de variable. Para declarar variables en javascript se hace así --> var variable = 1;
prueba a poner otra cosa en lugar de var y nos cuentas

salu2
  #3 (permalink)  
Antiguo 11/01/2010, 09:30
Avatar de karlic0s  
Fecha de Ingreso: abril-2007
Ubicación: Cartagena (Murcia)
Mensajes: 241
Antigüedad: 17 años
Puntos: 18
Respuesta: Problema con switch case

Gracias ceSharp, no me di cuenta en que puse var, sabia que era palabra reservada, pero escribiendo codigo ni lo vi, lo he cambiado var por capa, pero sigue sin funcionar...

Y creo que las comillas estan bien puestas, o me equivoco?

Alguna otra sugerencia?
  #4 (permalink)  
Antiguo 11/01/2010, 09:47
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Problema con switch case

coloca los valores de display como cadenas:

document.getElementById(inicio).style.display = 'none';
document.getElementById(inicio).style.display = 'block'; etc.
  #5 (permalink)  
Antiguo 11/01/2010, 09:49
Avatar de ceSharp  
Fecha de Ingreso: octubre-2008
Ubicación: Madrid
Mensajes: 495
Antigüedad: 15 años, 5 meses
Puntos: 66
Respuesta: Problema con switch case

si, hay algo más...

faltan comillas en los id de los divs en el código javascript, así como en los style.display. Esta sería la forma correcta de poner las comillas
-------------------------------
<script type="text/javascript">
function cambiarcapa(var1)
{
switch (var1)
{
case 'inicio':
document.getElementById('inicio').style.display = 'block';
document.getElementById('register').style.display = 'none';
document.getElementById('ultima').style.display = 'none';
break;
case 'register':
document.getElementById('inicio').style.display = 'none';
document.getElementById('register').style.display = 'block';
document.getElementById('ultima').style.display = 'none';
break;
case 'ultima':
document.getElementById('inicio').style.display = 'none';
document.getElementById('register').style.display = 'none';
document.getElementById('ultima').style.display = 'block';
break;
}
}
</script>
---------------------------------
en el HTML también te faltan comillas en los href:
--------------------------------
<a href="#" onclick="cambiarcapa('inicio'); return false;">


salu2
  #6 (permalink)  
Antiguo 11/01/2010, 09:53
Avatar de karlic0s  
Fecha de Ingreso: abril-2007
Ubicación: Cartagena (Murcia)
Mensajes: 241
Antigüedad: 17 años
Puntos: 18
Respuesta: Problema con switch case

Gracias de nuevo, ahora si que funciona.

Expongo la solución para futuros usuarios con el mismo problema:
lo único que faltaba era poner comillas a las vistas, block y none en la función.

Etiquetas: case, switch
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 21:11.