2016-06-09 287 views
0

我有函数,它的一部分工作不正确。if else问题的执行顺序

我需要什么 -

1)如果window width < 768 (do smth) 2)如果window width = 768 (do smth) 3)else (do smth)

有功能

var windowWid = $(window).width(); 
if ($poselok.length > 0) { 
    if (windowWid === 768) { 
     var offset = 0.05; 
    } 
    if (windowWid < 768) { 
     var offset = 0 - $el_full.offset().left - el_margin_left; 
    } else { 
     var offset = 0 - $el_full.offset().left + $sideLeft + 15; 
    } 
} else { 
    var offset = 0 - $el_full.offset().left - el_margin_left; 
}; 

没有if (windowWid < 768)条件if (windowWid === 768)作品的一部分,但随着它 - 不。

我试过if (windowWid < 767)if (windowWid <= 767)来分开if但什么也没有。

我试过替换if(windowWid === 768)工程但if (windowWid < 768)工作不正确。

我想我在执行顺序中有错误,但不知道如何解决它。

请帮忙!

回答

1
if (condition1) { 
    block of code to be executed if condition1 is true 
} else if (condition2) { 
    block of code to be executed if the condition1 is false and condition2 is true 
} else { 
    block of code to be executed if the condition1 is false and condition2 is false 
} 
0

不知道这是否应该解决这个问题,但我相信出于某种原因,第二个if也会被执行。尝试更改代码如下:

var windowWid = $(window).width(); 
if ($poselok.length > 0) 
{ 
    if (windowWid === 768) 
    { 
     var offset = 0.05; 
    } 
    else if (windowWid < 768) 
    { 
     var offset = 0 - $el_full.offset().left - el_margin_left; 
    } 
    else 
    { 
     var offset = 0 - $el_full.offset().left + $sideLeft + 15; 
    } 
} 
else 
{ 
    var offset = 0 - $el_full.offset().left - el_margin_left; 
}