图像容器事件处理程序中的图像容器而不是事件对象

时间:2011-01-11 19:05:28

标签: javascript image events load

我偶然发现了一件非常奇怪的事情。在FF 3.6(尚未测试其他人)中,我将onload处理程序添加到这样的图像:

imgRef.addEventListener("load", activateLink, false);

当load事件触发时,在activateLink(evt)中,evt参数不是一个事件,而是包含图像的“a”标记。这是为什么?

function activateLink(evt) {
  // evt turns out to be a refference to <a> tag (HTMLAnchorElement) that contains the image.
  // Actually two of them. Both dynamically added with addElement.
}

我记得另一个可能相关的事实。我有多个具有相同src的图像,所有这些图像都注册了同一个事件处理程序activateLink。这可能是问题吗?

1 个答案:

答案 0 :(得分:0)

我找到了原因,我实际上是用a tag作为参数调用这个方法。忘了在一个地方更改参考。愚蠢的JavaScript和它的松散类型:(愚蠢的错误。