繁体   English   中英

如何将EventListener添加到所有IMG标签

[英]How to addEventListener to all IMG Tags

我有一个ContentEditable Div元素(编辑器)。 我想将EventListener添加到编辑器中的所有图像标签。 我该怎么做。 对于现有图片,我可以使用

var imageNodes = document.getElementsByTagName('IMG');
        for(var i=0;i<imageNodes.length;i++) {          
            imageNodes[i].addEventListener('DOMNodeRemoved',getRemovedNodeDetails,false);
        }

对于新输入的图像,我该怎么做。 我可以向所有IMG标签添加样式,以便每当输入新图像时,侦听器都将添加到标签中。

您可以使用事件委托在父节点上添加事件侦听器,而不是在每个img标签上添加事件侦听器。 这样可以提供更好的性能,更重要的是,您可以自然地以这种方式处理新添加的图像。

张贴此消息不是因为wong的答案是错误的,而是太简短了。

// Warning: Typed on the fly

document.body.addEventListener('DOMNodeRemoved',getRemovedNodeDetails,false);

function getRemovedNodeDetails(e) {
  e = e || window.event;
  var target = e.target || e.srcElement;

  // Yea, there are times tagName returns a lowercase value.
  // I always normalize it for my own sanity.
  if (target.tagName.toUpperCase() === "IMG") {
    // Now, do something with target
  }
}

更多详细信息: http : //www.sitepoint.com/javascript-event-delegation-is-easier-than-you-think/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM