完整图像加载后javascript执行函数
我有下面一行javascritp完整图像加载后javascript执行函数,javascript,image,callback,load,Javascript,Image,Callback,Load,我有下面一行javascritp$(“#hero_image img”).attr('src',src)更改图像。接下来的几行将根据图像的新宽度执行任何操作,我通过$(“#hero_image img”).width()调用了新宽度 但是,如何确保在获取宽度之前已完全加载此图像,否则将返回旧宽度?设置超时不够可靠。您可以在事件处理程序中获取在完全加载后触发的宽度,如下所示: $("#hero_image img").load(function() { alert($(this).width(
$(“#hero_image img”).attr('src',src)代码>更改图像。接下来的几行将根据图像的新宽度执行任何操作,我通过$(“#hero_image img”).width()调用了新宽度代码>
但是,如何确保在获取宽度之前已完全加载此图像,否则将返回旧宽度?设置超时不够可靠。您可以在事件处理程序中获取在完全加载后触发的宽度,如下所示:
$("#hero_image img").load(function() {
alert($(this).width());
}).attr('src', src);
如果要执行此操作并重新使用映像,请绑定处理程序一次,或者每次使用时都需要不同的行为,这样它就不会不断添加onload
事件处理程序:
$("#hero_image img").one('load', function() {
alert($(this).width());
}).attr('src', src);
为什么要在
上使用one
而不是?@SazzadHossainKhan因此处理程序只执行一次,.one()
有一个非常特殊的用途-运行然后解除绑定。
$(function(){ // document ready
$('#hero_image img').bind('load', function(){ // image ready
// do stuff here
});
});