Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取窗口宽度javascript_Javascript_Jquery - Fatal编程技术网

获取窗口宽度javascript

获取窗口宽度javascript,javascript,jquery,Javascript,Jquery,我试图测量当前视口的宽度,以设置变量thiswith,但得到“未定义” var thisWidth; var browserWidth = $(window).width(); if(browserWidth > 590){ var thisWidth= 180; } else if(browserWidth > 350){ var thisWidth= 150; } alert(thisWidth); // undefined?? 有更好的方法吗 我这样做的原

我试图测量当前视口的宽度,以设置变量
thiswith
,但得到“未定义”

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

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

alert(thisWidth); // undefined??
有更好的方法吗

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


更新-解决的问题是,它在完成加载之前正在测量!因此,在350以下,成品宽度为360-实际上,
var
s是多余的,因为它们使变量成为函数范围的局部变量。它们不会造成伤害,但会让代码变得不那么清晰

如果
browserWidth
恰好是
>350

执行“jQuery ready”中的代码,我猜您缺少一个默认值,如下所示:

$(函数(){
//你的代码在这里

})

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

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

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

alert(thisWidth);

很好。尝试删除var的inside if语句如果视口是
则可能也需要
thiswith
在答案中发布解决方案,而不是问题。或者更好的是,接受Durgesh的答案。