当我想要在加载图像时发生某些事情时,我使用
$(“#image”)。load(function(){something});
解决此问题的一种方法是在图像src中添加一些随机数,但这会占用额外的带宽,因为它必须再次下载图像(对吗?)。
对此有什么好的解决方案吗?
答案 0 :(得分:2)
使用.complete检查:
$("#image").each(function() {
if(this.complete) doSomething(); //Runs immediately, image ready (cached)
else $(this).load(function() { doSomething(); }); //Will run when loaded
});
答案 1 :(得分:1)
我实际上会添加另一种方式:
这不是我做的,不幸的是我不知道背后的原始大脑:
$('#image').one('load',function() {
so_something();
}).each(function() {
if(this.complete) $(this).trigger('load');
});