【发布时间】:2013-09-24 07:13:30
【问题描述】:
我正在尝试使用 javascript/jQuery 来查找窗口的宽度并在以后的函数中使用该变量。
$(function resizer() {
function doneResizing() {
var windowWidth = $(window).width();
return windowWidth;
}
var getWidth = doneResizing();
var id;
$(window).resize(function() {
clearTimeout(id);
id = setTimeout(doneResizing, 0);
});
doneResizing();
return getWidth;
});
var finalWidth = resizer()
因此,每当调整窗口大小时,resize 函数都会更新,windowWidth 会自动更新。当变量在函数外部返回时,getWidth 不会随着窗口大小调整而更新,除非我刷新页面。有任何想法吗?两周前我刚拿起 js/jq,我正在尽我最大的努力来解决退货和关闭问题,所以我可能在这里忽略了一些东西。谢谢。
【问题讨论】:
-
我已经弄清楚为什么您的代码只能在重新加载时工作。重新加载时,
var getWidth = doneResizing();被执行,return getWidth被执行,直到finalWidth被分配。但是,此后每当调整窗口大小时,都会调用setTimeout(doneResizing, 0);。setTimeout对来自doneResizing()的返回值不做任何事情。
标签: javascript jquery variables