为什么onclick处理程序在javascript中使用innerHTML时不起作用

时间:2014-03-12 16:16:57

标签: javascript event-handling

<html>
<head>
<script>
window.onload = function(){
    var para = document.createElement("p");
    para.innerHTML = "aaaa";
    document.body.appendChild(para);

    var bspan = document.createElement("span");
    bspan.innerHTML = "bbbb";
    para.appendChild(bspan);

    bspan.onclick = function(){
       alert("hi");
    }
    para.innerHTML += "cccc";
}
</script>
</head>
<body>
</body>
</html>

这是我的代码,我希望当我点击bbbb时它会提醒你,但它显然不起作用,为什么?

2 个答案:

答案 0 :(得分:3)

由于您没有使用jQuery,以下是使用javascript进行事件委派的简单示例,因为您的span元素是从代码生成的,所以请尝试一下:

document.onclick = function(event) {
  var el = event.target;
  if (el.nodeName.toLowerCase() == "span") {
    alert("hi");
  }
};

Fiddle

答案 1 :(得分:2)

简短回答,我得到的错误是Uncaught ReferenceError: spa is not defined,所以你需要先定义spa。