有人请告诉我为什么以下脚本只适用于第一个“else if”语句?
即使宽度低于800px,我仍然可以获得900px设置。
以下是实时代码http://jsbin.com/iranof/2/
<script type='text/javascript'>
$(document).ready(function(){
var window_width = $(window).width();
if (window_width >= 900){
$('#adSize').attr('id','largeRectangle');
}
else
if (window_width <= 800)
{
$('#adSize').attr('id','mediumRectangle');
}
else
if (window_width <= 700)
{
$('#adSize').attr('id','square');
}
else
if (window_width <= 600)
{
$('#adSize').attr('id','smallSquare');
}
else if (window_width <= 480)
{
$('#adSize').attr('id','mediumRectangle');
}
});
</script>
答案 0 :(得分:4)
700&lt; = 800.如果window_width小于800,则第一个else if
检查将返回true
- 因此将调用其正文;所有其他else if
都将被忽略。
重建代码,以便<=
检查处理越来越多的数字:
else if (window_width <= 480) { ... }
else if (window_width <= 600) { ... }
else if (window_width <= 700) { ... }
else if (window_width <= 800) { ... }
答案 1 :(得分:0)
需要:
if (window_width >= 900){
}
else
if (window_width <= 800 && window_width > 700)
{
}
else
if (window_width <= 700 && window_width > 600)
{
}
等等......否则,一旦进入800分支,其他else if
分支将被放弃。
答案 2 :(得分:0)
if (window_width >= 900)
{
$('#adSize').attr('id','largeRectangle');
}
else
if (window_width <= 800 && window_width > 700)
{
$('#adSize').attr('id','mediumRectangle');
}
...
答案 3 :(得分:0)
试试这个......
<script type='text/javascript'>
$(document).ready(function(){
var window_width = $(window).width();
if (window_width >= 900){
$('#adSize').attr('id','largeRectangle');
}
else
if (window_width >= 800)
{
$('#adSize').attr('id','mediumRectangle');
}
else
if (window_width >= 700)
{
$('#adSize').attr('id','square');
}
else
if (window_width >= 600)
{
$('#adSize').attr('id','smallSquare');
}
else if (window_width <= 600)
{
$('#adSize').attr('id','mediumRectangle');
}
});
</script>