我正在尝试测量当前视口的宽度以设置变量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以下 - 实际上是奇怪的
答案 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);