gpt4 book ai didi

javascript - jquery/javascript,变量范围问题

转载 作者:行者123 更新时间:2023-12-02 18:47:37 25 4
gpt4 key购买 nike

我知道这可能是一个非常菜鸟的问题,但我看不出这里的问题是返回变量 pic_real_width.

我认为这是一个范围问题,但除了将其设为全局(不能这样做)之外,我不确定如何设置和返回它。

提前致谢,

function get_real_width(img){
var pic_real_width;
$("<img/>") // Make in memory copy of image to avoid css issues
.attr("src", $(img).attr("src"))
.load(function() {
pic_real_width = this.width;
console.log( pic_real_width ); // returns a number
});
console.log( pic_real_width ); //returns undefined
return pic_real_width;
}

最佳答案

简单地说,您传递给 load 的函数是异步函数,并且异步函数具有不同的模式函数上下文。

在示例中,无法遇到解决方案(我现在找不到解决方案),但是,您可以重构代码以异步获取图像的“真实宽度”,只需传递其他回调这是在传递给 load() 的函数内部调用的。

例如:

function get_real_width(img, callback){
var pic_real_width;
$("<img/>") // Make in memory copy of image to avoid css issues
.attr("src", $(img).attr("src"))
.load(function() {
pic_real_width = this.width;
callback( img, pic_real_width ); // Call the function with the number expected
});
}

因为它只是获取宽度并将其返回给函数。

但是,我知道,它在某些情况下不能使用。

祝你好运。

关于javascript - jquery/javascript,变量范围问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16197752/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com