【问题标题】:Image container instead of event object in image load event handler图像加载事件处理程序中的图像容器而不是事件对象
【发布时间】: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


【解决方案1】:

找到原因了,这个方法其实是我自己调用的,参数是a标签。忘记在一处更改参考。愚蠢的 javascript 及其松散的类型 :( 愚蠢的错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-13
    • 1970-01-01
    • 1970-01-01
    • 2011-07-22
    • 1970-01-01
    相关资源
    最近更新 更多