Foros del Web » Programando para Internet » Javascript »

problema con switch-case en firefox

Estas en el tema de problema con switch-case en firefox en el foro de Javascript en Foros del Web. Hola,tengo 22 imágenes y al hacer click muestra diferentes informaciones en otros div, de ahi el switch-case. invoco una función javascript y me ocurre lo ...
  #1 (permalink)  
Antiguo 20/12/2011, 05:53
 
Fecha de Ingreso: diciembre-2011
Mensajes: 6
Antigüedad: 12 años, 4 meses
Puntos: 0
problema con switch-case en firefox

Hola,tengo 22 imágenes y al hacer click muestra diferentes informaciones en otros div, de ahi el switch-case. invoco una función javascript y me ocurre lo siguiente.

Aquí la imagen donde invoca la función:

Código:
<a href="#" onclick="mostrarficha('foto','j1','datos_izquierda','datos_derecha','bandera')"> <img id="j1" src="picon.jpg" title="Picon"></a>
Al Probarlo con firefox, me da un error en firebug. (j1 is not defined)

Código:
 function mostrarficha(idfoto,idjugador,ti,td,idflag)
   {
        var jugador = document.getElementById(idjugador);
        sentencias...

switch(jugador)
	   {
	   	case j1:
                 sentencias...
                case j2:
                  etc...
           }
Sin embargo en chrome y en internet explorer se visualiza correctamente. Decir también que todos los navegadores están en su última versión, incluido el firefox (versión final 9).
  #2 (permalink)  
Antiguo 20/12/2011, 05:59
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: problema con switch-case en firefox

has de entrecomillarlo, ya que es un string no un integer
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #3 (permalink)  
Antiguo 20/12/2011, 06:17
 
Fecha de Ingreso: diciembre-2011
Mensajes: 6
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: problema con switch-case en firefox

Cita:
Iniciado por IsaBelM Ver Mensaje
has de entrecomillarlo, ya que es un string no un integer
Entrecomillado no muestra error pero no sale absolutamente nada (firefox), sin embargo en IE y chrome sin entrecomillar como lo tenía funciona perfectamente pero entrecomillado en IE chrome no va, esto de los navegadores me está volviendo loco

Edito el código para que se vea lo que hace el case j1.

Código:
function mostrarficha(idfoto,idjugador,ti,td,idflag)
   {
 
	 	var jugador = document.getElementById(idjugador);
		var idtitulo1 = "titulo_izquierda";
		var idtitulo2 = "titulo_derecha";
		var title1 = "<h1>Primera Division</h1>";
		var title2= "<h1>Trayectoria</h1>";
			
	   switch(jugador)
	   {
	   	case j1:
		var image = "<img id='fotogrande' src='Picon.jpg'>";
		var flag ="<img id='flag' src='spain.jpg'>";
		var statsi = "Temporadas: 1<br>Partidos: 29<br>Goles: 0";
		var statsd = " 06-09 Racing B<br>08-09 Racing<br>09-10 Pontevedra";
    	       var x = document.getElementById(idfoto);
    	       x.innerHTML = image;
		var xy = document.getElementById(idtitulo1);
		xy.innerHTML = title1;
		var yy = document.getElementById(idtitulo2);
		yy.innerHTML = title2;	
		var y = document.getElementById(ti);
		y.innerHTML = statsi;
		var z = document.getElementById(td);
		z.innerHTML = statsd;
		var f = document.getElementById(idflag);
		f.innerHTML = flag;
		break;
No consigo editar el primer mensaje, lo pongo aquí.

Gracias.
  #4 (permalink)  
Antiguo 20/12/2011, 06:32
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: problema con switch-case en firefox

he dado por supuesto que te has saltado parte del código. prueba este con entrecomillado y sin entrecomillado
Cita:
function mostrarficha(idjugador){
switch(idjugador){
case 'j1':
alert('jugador1');
break;
case 'j2':
alert('jugador2');
break;
}
}
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #5 (permalink)  
Antiguo 20/12/2011, 07:21
 
Fecha de Ingreso: diciembre-2011
Mensajes: 6
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: problema con switch-case en firefox

si, me he saltado parte de código porque son 22 cases y ningún tipo de entrecomillado funciona con firefox, he puesto el alert pero no llega a ejecutar el j1 :(
  #6 (permalink)  
Antiguo 20/12/2011, 08:42
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: problema con switch-case en firefox

te falta el atributo value
Cita:
var jugador = document.getElementById(idjugador).value;
lo extraño es que digas que te funciona en algunos navegadores

por otro lado, para saber que tipo de datos obtienes usa
Cita:
alert(typeof(document.getElementById(idjugador).va lue)
que por otro lado no comprendo para que usas esos controles, puesto que el valor será (j1,j2,j3, n..) y justamente el parámetro que le estás pasando a la función
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #7 (permalink)  
Antiguo 20/12/2011, 10:39
 
Fecha de Ingreso: diciembre-2011
Mensajes: 6
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: problema con switch-case en firefox

Si hago un alert a document.getElementById(idjugador) me dice que [object HTMLImageElement]. Con value no hacía nada.

Arreglado es como decías en tu segundo comentario, puede ser que no haya actualizado la página o algo no se.
Código:
    
           switch(idjugador)
            {
               case 'j1':
No llevo mucho con javascript y al hacer este ejercicio debí haber tenido una percepción distinta con el getElementById. Lo que no sé es por qué funcionaba perfectamente en IE y chrome y en firefox no.

Gracias.

Etiquetas: 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:01.