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