gpt4 book ai didi

javascript - 从嵌套私有(private)函数中设置全局变量

转载 作者:行者123 更新时间:2023-12-03 12:44:14 25 4
gpt4 key购买 nike

您好,提前感谢您帮助解决这个难题!

我在 $.imgpreload() 函数中设置 globalMaxW 时遇到问题。

console.log(globalMaxW);$.imgpreload() 函数之后调用时返回 0,而在$.imgpreload() 函数返回正确的图像宽度。

如何在该嵌套函数中设置全局变量 globalMaxW

谢谢!

var globalMaxW = 0; 

function infoWidth() {

$('.swipe-wrap img').each(function(){
var $me = $(this),
mysrc = $me.attr('src');

var newimg = new Image();

newimg.src = mysrc;

$.imgpreload($me, function(){
if(newimg.width > globalMaxW) {
globalMaxW = newimg.width;
}
});

console.log(globalMaxW);
});



$('#info p').css({'width' : globalMaxW});
}

最佳答案

您的 console.log(globalMaxW) 在以下代码完成执行之前发生,是的,当时它确实等于零:

 $.imgpreload($me, function(){
if(newimg.width > globalMaxW) {
globalMaxW = newimg.width;
}
});

由于该函数是异步的,因此它开始运行“imgpreload”并立即继续,而不等待其完成。 globalMaxW 将被设置,但在 console.log() 之后...

关于javascript - 从嵌套私有(private)函数中设置全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23398662/

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