将事件附加到尚未添加到DOM的对象

时间:2015-12-09 02:49:42

标签: javascript

我有一个img对象尚未附加到文档树中。是否可以为该对象分配onclick事件(使用attachEventaddEventListener)?或者我是否必须先将其附加到DOM ,然后才能附加事件?

var image = document.createElement("img");
image.src = "image1.png";

// Will any of the following work?
image.attachEvent("onclick", displayImage); // IE
image.addEventListener("click", displayImage, false); // non-IE

document.getElementById("imageDiv").appendChild(image);

function displayImage() {
   ...
}

请仅包含纯JavaScript(无JQuery)。谢谢!

2 个答案:

答案 0 :(得分:0)

据我所知,您正在搜索jquery live()/ on()功能的本机实现。你应该看一下Implementing jQuery's "live" binder with native Javascript

答案 1 :(得分:-1)

我找到了什么:

  1. 在使用之前添加一名法官。
  2. getElementById的param需要一个“#”。
  3. var image = document.createElement("img");
    image.src = "image1.png";
    if(image.attachEvent){
    image.attachEvent("onclick", displayImage);} // IE
    
    image.addEventListener("click", displayImage, false); // non-IE
    
    document.getElementById("#imageDiv").appendChild(image);
    
    function displayImage() {
      ...
    }