【发布时间】:2014-06-17 09:33:04
【问题描述】:
您好,提前感谢您对这个难题的帮助!
我无法从 $.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});
}
【问题讨论】:
-
我认为
$.imgpreload是异步的,不是吗? -
在内部范围内设置全局变量(无论如何最好避免)是没有障碍的。你已经在做。这可能是年表问题,例如如果你的函数被异步调用。
标签: javascript jquery global-variables scope