Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.08.2020, 01:19
Интересующийся
Отправить личное сообщение для Aleksandr Gumanat Посмотреть профиль Найти все сообщения от Aleksandr Gumanat
 
Регистрация: 10.07.2020
Сообщений: 12

Не срабатывает else if
Привет всем! Проблема такая: не срабатывает else if. Вот код:
else if (step == 3){
		view2.style.display = 'none';
		view3.style.display = 'block';
		discount++;
		discountElem.innerHTML = discount;
		step++;
		console.log('dssdds');
	}
	else if (step == 4){
		console.log('dssddassaass');
		// view3.style.display = 'none';
		// view4.style.display = 'block';
		// step++;
	}
}
Код работает таким образом: выполняеться функция, срабатывает if и увеличиваеться переменная step на 1, потом else if проверяет переменную и если она равна 1, срабатывает и увеличивает. И тут по не понятной причине else if тупо перестал работать. Не могу понять как это обьяснить
Ответить с цитированием
  #2 (permalink)  
Старый 08.08.2020, 01:46
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,320

Сообщение от Aleksandr Gumanat
Код работает таким образом
Не выдавайте желаемое за действительное.

Код работает несколько иным образом.
У вас есть цепочка из if .. else if. Условия операторов if будут проверяться до тех пор, пока в этой цепочке не найдется первый оператор, выражение которого будет трактоваться как true. После нахождения такого оператора будет выполнен код его блока, а все остальные проверки будут отброшены, как ненужные.

Чтобы код работал так, как вы это описали, удалите из из своего кода else.

Угадайте, сколько раз вызовется функция alert:
if (true) {
    alert('block 1');
} else if (true) {
    alert('block 2');
}


А в этом случае?
var variable = 1;
if (variable === 1) {
    alert(1);
    variable++;
} else if (variable === 2) {
   alert(2);
   variable = 0;
}

if (variable === 0) {
    alert(3);
    variable === 4;
} else if (variable === 2) {
    alert(4);
}
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Таймер срабатывает раньше времени или вообще не срабатывает Terebonko Элементы интерфейса 6 03.08.2017 13:43
onclick срабатывает со 2 раза в ie djonA Общие вопросы Javascript 19 25.03.2013 00:07
Не срабатывает обработчик window.onload. Alex82 Events/DOM/Window 16 22.02.2013 20:06
AJAX запрос в Internet Explorer срабатывает через раз nikolayseo jQuery 5 12.11.2012 23:13
Нажатие по дате в календаре срабатывает только со второго клика afr0 Events/DOM/Window 4 31.10.2012 12:39