在jQuery中执行此操作时:
$(function() {
alert("DOM is loaded, but images not necessarily all loaded");
});
Run Code Online (Sandbox Code Playgroud)
它等待DOM加载并执行您的代码.如果未加载所有图像,则它仍然执行代码.如果我们正在初始化任何DOM内容,例如显示或隐藏元素或附加事件,这显然是我们想要的.
让我们说虽然我想要一些动画但我不希望它运行直到所有图像都被加载.jQuery中是否有正式的方法来执行此操作?
我有最好的方法就是使用<body onload="finished()">
,但除非必须这样做,否则我真的不想这样做.
注意:Internet Explorer 中的jQuery 1.3.1中存在一个错误,它实际上会在执行内部代码之前等待加载所有图像$function() { }
.因此,如果您正在使用该平台,您将获得我正在寻找的行为,而不是上述正确的行为.
我想在加载图像后创建一个警告框,但如果图像保存在浏览器缓存中,.onload
则不会触发该事件.
无论图像是否已被缓存,如何在加载图像时触发警报?
var img = new Image();
img.src = "img.jpg";
img.onload = function () {
alert("image is loaded");
}
Run Code Online (Sandbox Code Playgroud) 我有以下一行javascritp $("#hero_image img").attr('src', src);
来改变图像.然后,以下行根据我调用的图像新宽度执行任何操作$("#hero_image img").width();
.
但是,如何在获得宽度之前确保此图像已完全加载,否则我将以旧宽度返回?设置超时不够可靠.
我在加载图像时遇到了一些麻烦.
我被告知以下功能可以工作,但它没有做任何事情.
$("#photos img:first").load(function (){
alert("Image loaded!");
});
Run Code Online (Sandbox Code Playgroud)
我的代码中没有错误.我脚本中的其他所有内容都很棒.
我的HTML看起来像这样.
<div id="photos">
<img src="../sample1.jpg" style="background-color:#000033" width="1" height="1" alt="Frog!"/>
<img src="../sample2.jpg" style="background-color:#999999" width="1" height="1" alt="Zooey!"/>
</div>
Run Code Online (Sandbox Code Playgroud)
我有错误的JQuery功能吗?还应注意,可见性设置为隐藏.然而即使在可见时也没有警报.
有任何想法吗?
问题是已知的,但我找不到任何简单的解决方案:
var img = new Image();
img.onLoad = function() {
console.log("load"); // this event doesn't fire
};
img.src = "img/domino/21.png";
console.log(img.complete); // false
setTimeout(function() {
console.log(img.complete); // sometimes true, sometimes false
}, 10);
Run Code Online (Sandbox Code Playgroud)
我正在寻找onComplete事件的实现,但我找不到任何东西.你能帮忙吗?
javascript ×3
jquery ×3
image ×2
callback ×1
dom-events ×1
events ×1
jquery-load ×1
load ×1
onload ×1