Nel seguente codice di esempio, allego un gestore di eventi onclick
allo span contenente il testo "foo". Il gestore è una funzione anonima che fa apparire un avviso().È possibile aggiungere a innerHTML senza distruggere gli ascoltatori di eventi dei discendenti?
Tuttavia, se si assegna al nodo genitore innerHTML
, questo gestore di eventi onclick
viene distrutto - facendo clic su "foo" non si apre la finestra di avviso.
È risolvibile?
<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>
Questa domanda è correlata al problema "annulla nuovi campi in un modulo cancella input utente". La risposta selezionata risolve entrambi questi problemi molto bene. – MattT