在javascript函数中设置全局变量

时间:2015-04-09 14:36:25

标签: javascript jquery

这是我的代码:

var ww;
$(window).on('resize load', function() {
  ww = $(window).width();
});
console.log(ww);

我希望在调整大小和加载时获得窗口宽度,但变量ww始终未定义。我无法理解我做错了什么。

2 个答案:

答案 0 :(得分:2)

这里发生的事情是,您正在将功能绑定到“调整大小”。并且'加载'窗口事件,尽管您在其中任何一个事件被触发之前尝试记录ww的值。

知道window.onload事件仅在整个页面加载完毕并且准备好使用Javascript操作后才会被调用。在触发此事件之前执行任何操作意味着您在加载脚本本身时(当到达脚本标记或文件时)立即执行它,尽管您可能尝试访问的任何元素本身可能尚未加载。

由于这两个事件都没有被触发,ww没有价值,因为当你执行var ww;时,你没有将它初始化为任何内容。

您需要做的是在事件处理程序中记录ww的值,如下所示:

var ww;
$(window).on('resize load', function() {
    ww = $(window).width();
    console.log(ww);
});

这会导致在页面加载后调用事件处理程序,也会在每次调整页面大小时调用事件处理程序,这意味着ww将设置为$(window).width();

答案 1 :(得分:0)

尝试以下代码

您可以使用 窗口 来访问全局变量。

var ww;
$(window).on('resize load', function() {
  window.ww = $(window).width();
    console.log(window.ww);
});
相关问题