在下面的示例代码中,我将一个onclick事件处理程序附加到包含文本“foo”的 span。处理程序是一个匿名函数,它会弹出一个alert().
但是,如果我分配给父节点的innerHTML,则此onclick事件处理程序将被破坏 - 单击“foo”无法弹出警报框。
这是可以修复的吗?
<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>