代码之家  ›  专栏  ›  技术社区  ›  Khan

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

  •  1
  • Khan  · 技术社区  · 15 年前

    下面是我的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 回复  |  直到 15 年前
        1
  •  3
  •   Christian    15 年前
    input.setAttribute('onclick','handleClick();');
    
        2
  •  2
  •   Community CDub    8 年前
    input = document.getElementById("my_window").appendChild(cButton);
    input.onclick = function() { yourFunction(); };
    

    这个问题几乎是 Add onclick property to input with JavaScript “ 作为另一种方式,我看到了 input.setAttribute('onclick', 'yourFunction();'); 但不能保证它能正常工作。