首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法将eventlistener附加到<img>-Tag的onload事件

无法将eventlistener附加到<img>-Tag的onload事件
EN

Stack Overflow用户
提问于 2012-12-07 00:39:09
回答 2查看 1.6K关注 0票数 2

我想知道为什么我不能将eventlistener附加到html图像的onload事件。

<img id="imageID" onload="doSomething();">运行得非常完美,

但是如果我想添加一个监听器,比如

代码语言:javascript
运行
复制
document.getElementById('imageID').addEventListener('onload', function(e) {
     doSomething();
     });

或使用jQuery

代码语言:javascript
运行
复制
$("imageID").on("onload", function(){
doSomething();
});

未捕获该事件。如果我监听一个简单的“点击”-Event,它可以工作,但不能使用"onload"-Event。

有人能告诉我这种行为的原因吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-07 00:39:54

不要在事件名称中包含"on"

代码语言:javascript
运行
复制
                              // no "on"------------v
document.getElementById('imageID').addEventListener('load', function(e) {

代码语言:javascript
运行
复制
   // no "on"----v
$("#imageID").on("load", function(){
// ^----need "#"
票数 5
EN

Stack Overflow用户

发布于 2012-12-07 00:41:54

这里有两个的问题。

如果你没有在事件名称中加上" on“,当你试图在一个已经存在于页面上的图片上挂接load事件时,你会有一个竞争条件,有时你看不到这个事件,因为它可以在被放到页面上的瞬间被”加载“(如果相关的图片在缓存中的话)。I Hate Lazy said.

  • If
  1. 你不能在事件名称中加上”on“,因为你试图在一个已经在页面上的图片上挂接load事件,你会有一个竞争条件,有时看不到事件,因为它可以在页面上被”加载“(如果相关的图片在缓存中)。您必须在图像具有src属性之前挂钩加载,这通常意味着动态添加图像。您的DOM0处理程序( onload="doSomething()")可以工作,因为在将图像添加到文档时它已经附加了,但是以后在页面上查找图像的任何内容(getElementById或jQuery)都可能会遗漏它。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13748278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档