在window.resize上更改变量值

时间:2013-07-03 09:06:01

标签: javascript jquery

我需要在window.resize()上更改一些变量值。

我已经发现你需要在.resize函数范围之外声明变量,然后尝试在函数.resize范围内更改它们的值。但这似乎不起作用。

    var windowHeight = $(window).height();
    var goPanel0, goPanel1, goPanel2, goPanel3;

        goPanel0 = 0;
        goPanel1 = windowHeight;
        goPanel2 = windowHeight * 2;
        goPanel3 = windowHeight * 3;

    $(window).resize(function(){

        goPanel1 = windowHeight;
        goPanel2 = windowHeight * 2;
        goPanel3 = windowHeight * 3;

        //alert(goPanel3);

    });

THX,

2 个答案:

答案 0 :(得分:4)

$(window).resize(function(){
        windowHeight = $(window).height(); // add this line
        goPanel1 = windowHeight;
        goPanel2 = windowHeight * 2;
        goPanel3 = windowHeight * 3;

        //alert(goPanel3);

    });  

变量windowHeight的值已从.resize范围中分配,而.resize中的值具有先前值,但应具有新值

答案 1 :(得分:2)

只是在调整大小后你没有得到新的窗口高度,所以它会一遍又一遍地给你相同的旧值,你必须从事件的函数内部重新赋值(获取值)以获得新的一个并使用它。

$(window).resize(function(){
        windowHeight = $(window).height(); // get new height after change
        goPanel1 = windowHeight;
        goPanel2 = windowHeight * 2;
        goPanel3 = windowHeight * 3;
});