Es posible agregar a innerHTML sin destruir los oyentes de eventos de descendientes?

En el siguiente código de ejemplo, adjunto unaonclick controlador de eventos para el lapso que contiene el texto "foo". El controlador es una función anónima que muestra una alerta ().

Sin embargo, si asigno @ al nodo padreinnerHTML, estaonclick el controlador de eventos se destruye: al hacer clic en "foo" no aparece el cuadro de alerta.

¿Es esto reparable?

<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>

Respuestas a la pregunta(11)

Su respuesta a la pregunta