如何在动态元素上添加onclick处理程序?

时间:2010-06-16 19:03:53

标签: javascript event-handling

以下是我的JS代码的重要部分:

function createClose() {
  var cButton = document.createElement("img");
  cButton.src = "close.gif";
  cButton.style.cursor = "pointer";
  cButton.onclick = closeWindow;

  document.getElementById("my_window").appendChild(cButton);
}

function closeWindow() {
  document.getElementById("my_window").style.display = "none";
}

创建并附加图像,但单击时不会调用onClick事件。我也尝试过使用匿名函数,但这也不起作用。

不,我不打算使用jQuery(虽然我相信你更容易)。

2 个答案:

答案 0 :(得分:3)

input.setAttribute('onclick','handleClick();');

答案 1 :(得分:2)

input = document.getElementById("my_window").appendChild(cButton);
input.onclick = function() { yourFunction(); };

这个问题几乎与“Add onclick property to input with JavaScript”重复 作为一种替代方式,我也看到了input.setAttribute('onclick', 'yourFunction();');的使用,但不能保证它有效。