Как исправить ошибку в коде?

На странице есть 6 ссылок (6 css кнопок).
Сгруппированы по 2 кнопки в строку.
Строка 1, 2, 3.

Нужно по таймеру, изменять их стили, в зависимости от ajax ответа.
По непонятной причине сейчас изменяется только третья строка (последняя?), хотя должна изменяться первая. Первая т.к. - ответ ajax должен изменять первую строку.
function update_switch() 
{

//Строки - пробегаем все от 1 до 3
for (var number=1; number<3; number++) 
{

//Получаем значение
$.ajax({url: 'actions.php', method: 'POST', data: {action: 'get_switch_status', number:number} ,success: function(data)
{
//Если значение on
if (data=='on')
{
//Для этой кнопки изменяем стили
$(".page_content .switch_off_button_"+number).css("background-color", "#14111d");
$(".page_content .switch_on_button_"+number).css("background-color", "#1b8ee3");	
}
//Если значение off
if (data=='off')
{
$(".page_content .switch_on_button_"+number).css("background-color", "#14111d");
$(".page_content .switch_off_button_"+number).css("background-color", "#1b8ee3");	
}

}
});

}

}
setInterval(update_switch, 2000); //2 сек


Где ошибка и почему изменяется 3я строка?
Как исправить ошибку в коде?
  • Вопрос задан
  • 83 просмотра
Пригласить эксперта
Ответы на вопрос 2
LaRN
@LaRN
Senior Developer
Вот здесь не понятно:
for (var number=1; number<3; number++)
При таком условии number будет 1 и 2 до 3 не дойдет.
Чтобы было как в комментарии: //Строки - пробегаем все от 1 до 3
нужно:
for (var number=1; number<4; number++)
Ответ написан
Stalker_RED
@Stalker_RED
Достаточно было заменить var number=1 на let number=1

Читайте о замыканиях и асинхронном коде.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы