Im folgenden Beispielcode füge ich onclickdem Bereich, der den Text "foo" enthält, einen Ereignishandler hinzu. Der Handler ist eine anonyme Funktion, die eine anzeigt alert().
Wenn ich jedoch den übergeordneten Knoten zuweise innerHTML, wird dieser onclickEreignishandler zerstört. Wenn Sie auf "foo" klicken, wird das Warnfeld nicht angezeigt.
Ist das reparabel?
<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>