【发布时间】:2010-05-05 17:02:45
【问题描述】:
我试图弄清楚如何最好地将加载事件附加到元素,但要确保它能够运行。当我绑定到 img 的加载事件时出现问题,但该绑定发生得太晚并且图像已经加载。 jQuery中有没有办法检查图像是否已经加载?
这显然是一个间歇性问题,因为有时代码会在图像加载之前运行,有时则不会。
$(function () {
var hasRun = false;
$('#image').bind('load', function () {
if ($(this).width() <= 0 || $(this).height() <= 0 || hasRun) return;
hasRun = true;
// do work here
}).trigger('load');
});
代码看起来像这样。我添加了 hasRun 变量并检查了变量的高度和宽度以确保其已加载,然后添加了触发器。
有没有更好的方法来做到这一点?如果图像已经加载,我可以用 jQuery 设置一些标志来告诉它运行函数吗?
【问题讨论】:
标签: javascript jquery javascript-events