停止侦听或删除Image()对象onload事件的事件

时间:2013-01-02 18:45:04

标签: javascript html events event-handling

我制作了一个画布,可以拼接大量小图像,形成一个大图像。

我写了它来监听一个加载了一个单个图像对象的事件,然后将其绘制到画布中,加载下一个图像后将再次触发事件,它将按用户指定的数字停止此递归。

因此,在达到用户指定的数字后,我想停止收听我的图像对象的“加载”事件,如何让我的图像对象(即“img”)停止监听事件“加载”?< / p>

//在这里调试

网页:https://dl.dropbox.com/u/2321732/stitch_images/index.html

Javascript:https://dl.dropbox.com/u/2321732/stitch_images/script/main.js

//便于编辑

JSBin:http://jsbin.com/acakif/1/

注意:我怎么知道事件仍然存在

1.转到网络检查员,javascript控制台

2。   img.src = "https://dl.dropbox.com/u/2321732/stitch_images/images/0_3.jpg"

3。  它不应该记录“已加载的东西”

1 个答案:

答案 0 :(得分:4)

在你的代码中我看到:

img.addEventListener("load", drawStitch, true);

但是你删除了这样的监听器:

img.removeEventListener("load", drawStitch);

如果你想删除一个监听器,只需简单地说明你必须将你传递给addEventListener的所有参数传递给removeEventListener

所以在你的例子里有类似的东西:

img.removeEventListener("load", drawStitch, true);

我在Firefox / Firebug中测试了它,并且步骤2不再触发事件:)