如何推断变量使它们成为全局变量?

时间:2014-05-08 19:33:30

标签: javascript jquery function variables global-variables

我们要说我必须找出窗口宽度,代码将是:

$(window).width();

如果我希望它成为一个全局变量,我只需要声明它的名字:

var windowWidth = $(window).width();

结果将是窗口的宽度。 但是当事情发生时我需要变量来改变,例如当我调整窗口大小时:

$(window).resize(function(){
    var windowWidth = $(window).width();
});

如何推断此变量以覆盖之前的变量? 我可以在.resize(function()中放入我需要的函数之前覆盖变量;但是这样我的代码混乱,我需要一个变量来在resize函数之外的其他函数中使用它,例如.click(功能)

$(document).ready(function(){
    var w = $(window).width();
    $(window).resize(function(){
        var w = $(window).width();

        //click function goes here.
    });
});

如果我想要上面的函数将成为一个全新的变量?没有在其中添加新功能?

2 个答案:

答案 0 :(得分:3)

你的代码的问题是你有两次var。每次使用var时都会创建一个新变量。所以就这样留下第二个:

$(document).ready(function(){
    var w = $(window).width();
    $(window).resize(function(){
        w = $(window).width();

        //click function goes here.
    });
});

答案 1 :(得分:0)

我为我的项目做了类似的事情:

var winWidth, winHeight;

function setWinSize(){
    winWidth = $(window).width();
    winHeight = $(window).height();
    //note I'm not using the var suffix again
}

//then we set the new values on document ready and on window resize
$(document).ready(function(){
    setWinSize();
})
$(window).resize(function(){
    setWinSize();
})

function myCustomFunction(){
    //I can now use my vars here
}