获取窗口宽度javascript

时间:2014-03-02 10:23:43

标签: javascript jquery

我正在尝试测量当前视口的宽度以设置变量thisWidth但是未定义'

var thisWidth;
var browserWidth = $(window).width();

if(browserWidth > 590){
    var thisWidth= 180;
} else if(browserWidth > 350){
    var thisWidth= 150;
}

alert(thisWidth); // undefined??

有更好的方法吗?

我这样做的原因是根据视口宽度更改宽度变量(thisWidth),无论它是移动还是其他。

更新 - 已解决问题是,它是在完成加载之前测量的!因此,在完成宽度为360的情况下进入350以下 - 实际上是奇怪的

3 个答案:

答案 0 :(得分:2)

执行“jQuery ready”中的代码:

$(function(){ // Your code here })

答案 1 :(得分:0)

var是多余的,因为它们使功能范围的变量成为本地变量。它们不会受到伤害,但会使代码不那么清晰。

如果browserWidth恰好是> 350

,我猜您错过了默认值

答案 2 :(得分:0)

正如其他人所指出的那样,额外的var是不必要的,可以删除。如果你看一下逻辑,有一种情况可以在if之后找不到thisWidth。如果browserWidth小于或等于350,会发生什么?然后thisWidth的任何分配都不会运行。添加最后一个修复它。

var thisWidth;
var browserWidth = $(window).width();

if(browserWidth > 590){
    thisWidth= 180;
} else if(browserWidth > 350){
    thisWidth= 150;
} else {
    thisWidth=42;
}

alert(thisWidth);