【发布时间】:2011-01-11 19:05:28
【问题描述】:
我偶然发现了一件非常奇怪的事情。在 FF 3.6(尚未测试其他版本)中,我将 onload 处理程序添加到这样的图像中:
imgRef.addEventListener("load", activateLink, false);
当加载事件触发时,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。会不会是这个问题?
【问题讨论】:
-
你能把剩下的代码贴出来吗?
-
不知道为什么。检查 evt.currentTarget 并查看它是否具有 img obj 引用。
-
我有4000多行JS代码。我很确定其中大部分与这个问题无关。我会尝试更新更多的代码和信息,这可能与它有关。但如果没有某种线索,我不知道该发布什么。
-
我认为 amosrivera 真的只是想知道您如何获得
imgRef以确保没有简单的错误。 -
伙计们,我意识到这甚至不是事件对象,它是对 标签 dom 元素的实际引用。 Chrome 也可以,超级奇怪!
标签: javascript image events load