Как сделать отмену действия?

130
23 октября 2019, 10:50

В чём ошибка моего кода? Первая ветвь работает нормально, как сделать чтобы при повторном нажатии заработала и вторая ветвь?

function checked() 
{ 
  var ru_cy = document.getElementById('ru_cy'); 
  var kz_cy = document.getElementById('kz_cy'); 
  var kz_la = document.getElementById('kz_la'); 
  var check_lang = 0; 
  if (check_lang == 0) 
  { 
    ru_cy.style.right = "6%"; 
    kz_cy.style.right = "6%"; 
    kz_la.style.right = "6%"; 
    check_lang++; 
  } else if (check_lang == 1) 
  { 
    ru_cy.style.right = "-8%"; 
    kz_cy.style.right = "-8%"; 
    kz_la.style.right = "-8%"; 
    check_lang--; 
  } 
}
<button class="check_lang" onclick="checked()" value="0" id="check_lang">Выбрать язык</button> 
<button class="ru_cy" id="ru_cy" onclick="ru_cy()">Русский - Кириллица</button> 
<button class="kz_cy" id="kz_cy" onclick="kz_cy()">Казахский - Кириллица</button> 
<button class="kz_la" id="kz_la" onclick="kz_la()">Казахский - Латиница</button>

Answer 1

Во-первых не elif, а else if, во-вторых в четвертой строке функции вы переменной check_lang всегда присваиваете 0, нужно вынести её объявление выше.

right на backgroundColor я заменил для наглядности

var check_lang = 0; 
 
var ru_cy = document.getElementById('ru_cy'); 
var kz_cy = document.getElementById('kz_cy'); 
var kz_la = document.getElementById('kz_la'); 
 
function checked() {  
  if (check_lang == 0) { 
    ru_cy.style.backgroundColor = "red"; 
    kz_cy.style.backgroundColor = "red"; 
    kz_la.style.backgroundColor = "red"; 
    check_lang++; 
  } else if(check_lang == 1) { 
    ru_cy.style.backgroundColor = "white"; 
    kz_cy.style.backgroundColor = "white"; 
    kz_la.style.backgroundColor = "white"; 
    check_lang--; 
  } 
}
<button class="check_lang" onclick="checked()" value="0" id="check_lang">Выбрать язык</button> 
<button class="ru_cy" id="ru_cy" onclick="ru_cy()">Русский - Кириллица</button> 
<button class="kz_cy" id="kz_cy" onclick="kz_cy()">Казахский - Кириллица</button> 
<button class="kz_la" id="kz_la" onclick="kz_la()">Казахский - Латиница</button>

READ ALSO
Размещение блоков в конце секции

Размещение блоков в конце секции

Есть 3 блокаКак разместить их внизу секции home например? Они в воздухе, не могу их спустить

120
Объединение нескольких html в Thymeleaf

Объединение нескольких html в Thymeleaf

Как объединить несколько html файлов в Thymeleaf? Я реализовывал данный код через php с помощью include_once "headerhtml";, но в thymeleaf подобной конструкции не нашел

101
При загрузке на сервер не отображаются иконочные шрифты

При загрузке на сервер не отображаются иконочные шрифты

При загрузке на сервер вместо иконок квадраты или другие символыШрифты Font-awesome и linea

126