检测jQuery 1.8+中的图像加载 - 自弃用以来替代load()

时间:2013-02-08 21:40:00

标签: javascript jquery image javascript-events image-preloader

说明

由于我理解的原因,从jQuery 1.8开始,load事件已被弃用,但是,仍然可以通过使用来检测图像是否已加载(即使它在缓存中)某些变通方法。 因此,事件的弃用实际上非常令人恼火,因为它至少可以作为检测图像何时加载到页面上的起点。

尽管如此,它已被弃用,因此我提出这个问题,希望我能找到答案,从而帮助我和可能很快就会遇到同样问题的其他人。

示例(在jQuery 1.8之前)

不使用插件(因为这应该可以在很少的代码中完成,所以不需要插件),我想在我的页面上的每个图像加载时调用一个函数。

这样的事情(由于弃用,这不起作用):

$('#mn_content .column').on('load','img',function(){
    console.log('loaded');  
})

我的问题

如果load事件不存在,有人知道如何实现这一目标吗?

请注意: 如果实现此(现在)的唯一方法是使用Javascript new Image对象,那么请不要浪费你的时间帮助我,因为别人比我更需要你的帮助。我能够编写这段代码,它似乎有点长篇大论,因为它非常基础。

我只是问了这个问题,以确保没有使用Javascript image对象

的方法无法实现这一目标

我当然会非常感谢任何帮助,我只是不希望你在有其他人需要你帮助的时候花太多时间在我身上。 : - )

1 个答案:

答案 0 :(得分:4)

加载事件仍然存在,您无法再使用.load绑定到它。您的事件委托示例应继续处理1.9和2.0(如果您正在测试的浏览器支持冒充加载事件)

我个人仍然会use the new Image method,因为我不相信所有浏览器都会始终正确地填充加载事件。

编辑:对不起,如果我不清楚,我的观点是加载事件仍然存在,你只需要正确绑定它。由于load事件不会在所有浏览器中冒泡(如果在任何浏览器中?),您必须将事件直接绑定到图像。我建议使用您要求我们不要为您提供示例的方法。