En el siguiente código de ejemplo, adjunto un controlador de eventos onclick
al tramo que contiene el texto "foo". El controlador es una función anónima que muestra una alerta().¿Es posible añadir a innerHTML sin destruir los detectores de eventos de los descendientes?
Sin embargo, si asigno el nodo principal innerHTML
, este controlador de eventos onclick
se destruye, haciendo clic en "foo" no aparece el cuadro de alerta.
¿Es esto solucionable?
<html>
<head>
<script type="text/javascript">
function start() {
myspan = document.getElementById("myspan");
myspan.onclick = function() { alert ("hi"); };
mydiv = document.getElementById("mydiv");
mydiv.innerHTML += "bar";
}
</script>
</head>
<body onload="start()">
<div id="mydiv" style="border: solid red 2px">
<span id="myspan">foo</span>
</div>
</body>
</html>
Esta pregunta se relaciona con el problema 'Agregar nuevos campos a un formulario borra la entrada del usuario'. La respuesta seleccionada corrige muy bien estos dos problemas. – MattT