Foros del Web » Programando para Internet » Javascript »

No funciona onclick en IE si en Firefox

Estas en el tema de No funciona onclick en IE si en Firefox en el foro de Javascript en Foros del Web. Buenas, esta es la primera vez que posteo en el foro aunke soy ha sidua para solucionar mis dudas Weno aki esta mi problema. Estoy ...
  #1 (permalink)  
Antiguo 25/04/2009, 05:29
Avatar de neferet  
Fecha de Ingreso: diciembre-2008
Ubicación: Málaga
Mensajes: 8
Antigüedad: 15 años, 5 meses
Puntos: 0
No funciona onclick en IE si en Firefox



Buenas, esta es la primera vez que posteo en el foro aunke soy ha sidua para solucionar mis dudas

Weno aki esta mi problema.

Estoy haciendo una página donde muestro una serie de <td> dinámicamente, el número de elementos a mostrar depende de lo que me devuelve un método java (devuelve un vector).

Cada td de la tabla tiene una imagen y varios textos, mi problema viene al querer cambiar la imagen al ser pulsada mediente el evento onclick, este llama a una función javascript para que haga el cambio. Este método me funciona perfectamente en firefox pero no en ie

En un principio había incluido el evento onclick sobre la imagen, funcionando en firefox pero no en ie, leí por ahí q esto no lo entendia ie y cambié de lugar onclick incluyendo un <a hre="#">

Está es el codigó de donde obtengo el elemento y la structura del td

ConsultaBean consulta = iterador.next();

out.println("<td class='btn' align='center'><a href='#' id="+consulta.getIdInforme()+" onclick='cambiar(this.id>);'><img id='img"+consulta.getIdInforme()+"' name='img"+consulta.getIdInforme()+"' src='./images/checkboxes.png' border='0' alt='Descargar informe'></a></td>");

He probado también a pasarle al evento
cambiar(<%=consulta.getIdInforme() %>)
cambiar(<%=consulta.getIdInforme(); %>)
cambiar(+consulta.getIdInforme()+)

Y la función javascript, le he puesto una traza para ver q me devuelve

function cambiar(ide)
{
var informe="informar" + ide;
var imgcambiar="img" + ide;

window.alert(document.getElementById(imgcambiar).s rc); Esto no devuelve nada
window.alert(document.getElementById(imgcambiar)); Esto devuelve [object]
if(document.getElementById(informe).value == 'true')
{
if ((marcado==0)){
window.alert("marcadoAntes "+ document.getElementById(imgcambiar).src); Esto devuelve marcadoantes undefined
document.getElementById(imgcambiar).src = imagen2.src;
//document.getElementById(ide).src="./images/checkbox_marcado.png";
window.alert(imgcambiar);
window.alert("marcadoDespues "+ document.getElementById(imgcambiar).src); Esto devuelve marcadodespues con la ruta correcta
marcado=1;
//identifica el estudio a sacar
document.getElementById('seleccion').value=documen t.getElementById(ide).name;
numsel=document.getElementById(ide).name;
}else if ((marcado==1)){
if (numsel!=ide){
window.alert("Ya hay un elemento seleccionado");
} else {
document.getElementById(ide).src=imagen1.src;
marcado=0;
numsel=-1;
}
}

}else{
window.alert("El estudio no está disponible");
}
}


También lei que se debe de hacer una precarga de las imagenes a mostrar estas las tengo inmediatamente despues de :
<script language="javascript">
imagen1 = new Image()
imagen1.src = "./images/checkboxes.png"
imagen2 = new Image()
imagen2.src = "./images/checkbox_marcado.png"



Agradezco de antemano cualquier ayuda q me ofrezcais.

  #2 (permalink)  
Antiguo 25/04/2009, 09:41
 
Fecha de Ingreso: mayo-2008
Mensajes: 43
Antigüedad: 16 años
Puntos: 1
Respuesta: No funciona onclick en IE si en Firefox

No te funciona poniendo "....... onclick='cambiar(" + consulta.getIdInforme() + ");' ........" ? (cuidado, en tu post no aparecen las comillas entre los paréntesis de la función del evento.

Fuera de eso, creo que en IE no funciona el id de los tags <a>.
  #3 (permalink)  
Antiguo 25/04/2009, 10:22
Avatar de neferet  
Fecha de Ingreso: diciembre-2008
Ubicación: Málaga
Mensajes: 8
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: No funciona onclick en IE si en Firefox

Gracias por tu rapida contestación.
Voy a probarlo y ya te cuento
  #4 (permalink)  
Antiguo 25/04/2009, 10:29
Avatar de neferet  
Fecha de Ingreso: diciembre-2008
Ubicación: Málaga
Mensajes: 8
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: No funciona onclick en IE si en Firefox

Hola darkdestroyer, he probado lo q me has dicho pero no funciona
tambien he probado con onclick='cambiar(this.id="+consulta.getIdInforme() +");'


Alguna otra sugerencia, me stoy volviendo loca

Pleaseee
  #5 (permalink)  
Antiguo 25/04/2009, 11:36
 
Fecha de Ingreso: mayo-2008
Mensajes: 43
Antigüedad: 16 años
Puntos: 1
Respuesta: No funciona onclick en IE si en Firefox

A ver, vamos por partes.

Hay algo extraño en ese código:

Código:
document.getElementById(ide).name
La variable ide es el id del mismo objeto donde está el evento. Ese objeto no tiene nombre

Código:
document.getElementById(ide).src=imagen1.src;
Ese mismo objeto no es una imagen, es un <a>.

Pero bueno, de todas formas dijiste que el código funciona bien en Firefox. Así que el getIdInforme() debe estar dando los valores correctos.

Código:
window.alert(document.getElementById(imgcambiar).s rc);
Capaz un error al pasar el código al post, la separación en "s rc".



Código:
window.alert("marcadoAntes "+ document.getElementById(imgcambiar).src);  Esto devuelve marcadoantes undefined
document.getElementById(imgcambiar).src = imagen2.src;
//document.getElementById(ide).src="./images/checkbox_marcado.png";
window.alert(imgcambiar);
window.alert("marcadoDespues "+ document.getElementById(imgcambiar).src); Esto devuelve marcadodespues con la ruta correcta
Y finalmente acá creo que esto muestra que el error está en la variable "imgcambiar" y, por lo tanto, en el valor de ide.

Lo que te diría es que hagas un alert para verificar lo que vale imgcambiar y que en el caso de que ide no sea un número sino una cadena, el código de mi post anterior sería:

onclick='cambiar('" + consulta.getIdInforme() + "');' (las comillas simples)

Saludos
  #6 (permalink)  
Antiguo 26/04/2009, 11:49
Avatar de neferet  
Fecha de Ingreso: diciembre-2008
Ubicación: Málaga
Mensajes: 8
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: No funciona onclick en IE si en Firefox

Hola darkdestroyer, te agradezco mucho tu ayuda he probado lo q me dices pero no me funciona ni en firefoz ni en ie.

También he realizado lo q me has dicho sobre mostrar el ide q obtengo y me devuelve el número correcto
window.alert(ide);
var informe="informar" + ide;
var imgcambiar="img" + ide;
window.alert("@"+imgcambiar+"@");
window.alert(document.getElementById(imgcambiar));

También he probado a ver q tipo de datos devuelve, aunke no sé si eso tiene algo q ver

Esto me devuelve un STRING

window.alert(typeof ide);

Si sabes de otra manera de hacerlo, pq he visto por ahi q tambien se puede hacer con CSS aunke eso no lo entiendo mu bien, la idea es cambiar la imagen de un solo elemento identificado por el id.

Muchas gracias por tu tiempo
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 20:40.