Les cuento la siguiente situación.
Tengo una imágen que, mediante el evento onclick llamo a una función en javascript que lo que hace, entre otras cosas, es alterar la misma imagen, tanto el src, como alt y el mismo evento onclick.
En FF funciona todo bien, pero en IE lo que ocurre es lo siguiente:
Me toma bien el cambio de los atributos src y alt, y checkeando también me toma el cambio del evento onclick, sin embargo cuando vuelvo a clickear sobre la imagen no ocurre nada, no llama a la nueva función, es como si no tomara el nuevo evento onclick.
Es raro de explicar, espero que me hayan entendido.
Les dejo el código que estoy haciendo
HTML
Código :
<img src="add.gif" onclick="javascript:addMail(this,'ariel(at)hotmail.com')" alt="Agregar" />
JS
Código :
function addMail(obj, val){
var cuentas = document.form_mensaje.cuentas_mail;
obj.alt = "Remover";
obj.src = "remove.gif";
obj.removeAttribute("onclick");
obj.setAttribute("onclick", "javascript:removeMail(this,'"+val+"')");
/* también probe con la siguiente linea pero sucede lo mismo */
obj.attributes["onclick"].value = "javascript:removeMail(this,'"+val+"')";
if(cuentas.value == ""){
cuentas.value = val;
} else {
cuentas.value = cuentas.value+', '+val;
}
alert(obj.getAttribute("onclick")); // aca, efectivamente, me devuelve el "onclick" que le asigne en la función
return;
}
function removeMail(obj, val){
alert(obj); // no imprime este alert, por lo que ni siquiera entró a la función
var cuentas = document.form_mensaje.cuentas_mail;
obj.alt = "Agregar";
obj.src = "add.gif";
obj.removeAttribute("onclick");
obj.setAttribute("onclick", "javascript:addMail(this,'"+val+"');");
cuentas.value = cuentas.value.replace(", "+val, "");
cuentas.value = cuentas.value.replace(val, "");
if(cuentas.value.substring(0,2) == ", "){
cuentas.value = cuentas.value.substring(2, cuentas.value.length);
}
return;
}
Agradezco cualquier ayuda o sugerencia.
Saludos
