Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/04/2009, 05:29
Avatar de neferet
neferet
 
Fecha de Ingreso: diciembre-2008
Ubicación: Málaga
Mensajes: 8
Antigüedad: 15 años, 6 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.