是否可以在不破坏后代事件侦听器的情况下追加到innerHTML?在下面的示例代码中,我附加了一个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>
3 回答
HUX布斯
TA贡献1876条经验 获得超6个赞
innerHTML
function start() { var myspan = document.getElementById("myspan"); myspan.onclick = function() { alert ("hi"); }; var mydiv = document.getElementById("mydiv"); mydiv.appendChild(document.createTextNode("bar"));}
编辑:
function start() { var myspan = document.getElementById("myspan"); myspan.onclick = function() { alert ("hi"); }; var mydiv = document.getElementById("mydiv"); var newcontent = document.createElement('div'); newcontent.innerHTML = "bar"; while (newcontent.firstChild) { mydiv.appendChild(newcontent.firstChild); }}
添加回答
举报
0/150
提交
取消