Dans l'exemple de code suivant, j'attache un gestionnaire onclick au span contenant le texte "foo". Le gestionnaire est une fonction anonyme qui fait apparaître un alert().
Cependant, si j'ajoute le texte innerHTML du nœud parent, ce gestionnaire onclick est détruit : cliquer sur "foo" ne fait pas apparaître la boîte d'alerte.
Est-ce que ça peut être réparé ?
<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>