2016-06-09 2 views
0

У меня есть функция, часть ее работает некорректно.Порядок выполнения if else issue

Что мне нужно -

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

Не уверен, что это должно устранить проблему, но по какой-то причине я верю, что второй, если выполняется. Попробуйте изменить код следующим образом:

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; 
}