Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
完整图像加载后javascript执行函数_Javascript_Image_Callback_Load - Fatal编程技术网

完整图像加载后javascript执行函数

完整图像加载后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(

我有下面一行javascritp
$(“#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
    });
});