Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.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 JQuery load()在加载图像之前激发_Javascript_Jquery_Html - Fatal编程技术网

Javascript JQuery load()在加载图像之前激发

Javascript JQuery load()在加载图像之前激发,javascript,jquery,html,Javascript,Jquery,Html,我想更改图像的src属性,然后读取新图像的宽度。不幸的是,JQuery load()函数似乎在加载图像和设置宽度之前启动。你知道怎么修吗 函数构建加载(rc){ 警报(rc.width()); } var rc=$('img.myimg'); rc.attr({'src':'https://imagizer.imageshack.us/v2/379x674q90/661/Nt07gm.jpg?'+Math.random()}); 钢筋混凝土荷载(建筑荷载(rc)) 尝试onload事件 $

我想更改图像的src属性,然后读取新图像的宽度。不幸的是,JQuery load()函数似乎在加载图像和设置宽度之前启动。你知道怎么修吗

函数构建加载(rc){
警报(rc.width());
}
var rc=$('img.myimg');
rc.attr({'src':'https://imagizer.imageshack.us/v2/379x674q90/661/Nt07gm.jpg?'+Math.random()});
钢筋混凝土荷载(建筑荷载(rc))

尝试onload事件

$(文档).ready(函数(){
var rc=$('img.myimg');
钢筋混凝土荷载(功能(e){
console.log(“高度:+e.currentTarget.Height”,宽度:+e.currentTarget.Width)
});
rc.attr({'src':'https://imagizer.imageshack.us/v2/379x674q90/661/Nt07gm.jpg?'+Math.random()});
});

使用Jquery一个函数

请尝试以下代码

$(“img.myimg”).one(“加载”,函数(){ //获取图像的宽度
}).attr(“src”,“新路径”)

特别是在您的代码中,问题是您调用了
buildLoad(rc)
,而不管
load
事件如何。您需要做的是调用一个包装器函数,该函数将在
加载完成后运行:

rc.load(function() { buildLoad(rc) })
函数构建加载(rc){
警报(rc.width());
}
var rc=$('img.myimg');
rc.attr({'src':'https://imagizer.imageshack.us/v2/379x674q90/661/Nt07gm.jpg?'+Math.random()});
load(function(){buildLoad(rc)})


显然,JQuery在这里记录了一个已知的问题:您可以使用setTimeOut()并在大约200毫秒的延迟后调用您的方法。基于文件大小和互联网速度,这个数字可能需要更高或更低,这就是为什么这不是最好的方式。谢谢你,Nawed!这个问题有什么解决办法吗?谢谢你,德克尔。这很有趣,因为当我在这里运行代码段时,它工作正常,但当我在我的网站上实现您的改进时,它仍然返回“0”对于图像宽度。你能在你的网站上显示代码的具体实现吗?结果是,在加载图像之前,我在父元素上放置了display:none,这就是为什么我得到这样的效果。谢谢你,德克尔!