@emilkarussia

Почему при конструкции switch case «0» работает, а case «1» и case «2» нет?

Почему при конструкции switch case "0" работает, а case "1" и case "2" нет?
<!DOCTYPE HTML>
<html>
  <head>
    <meta charset="utf-8">
    <title>Выбор</title>
  </head>
  <body id="0">
    <input type="button" value="1" id="decis1" onclick="numb(1);">
    <input type="button" value="2" id="decis2" onclick="numb(2);">
    <script>
      function numb(decis) {
        switch (curScene) {
          case "0": 
            if (decis == 1) {
              curScene = 1;
              alert("case 0: decis == 1");
            }
            else {
              curScene = 2;
              alert("case 0: decis == 2");
            }
            
            break;
          case "1": 
            if (decis == 1) {
              alert("case 1: decis == 1");
            }
            else {
              alert("case 1: decis == 2");
            }
            break;
          case "2": 
            if (decis == 1) {
              alert("case 2: decis == 1");
            }
            else {
              alert("case 2: decis == 2");
            }
            break;
        }
      }
      var curScene = document.getElementById("0").id;
    </script>
  </body>
</html>
  • Вопрос задан
  • 263 просмотра
Решения вопроса 3
vladqwerty
@vladqwerty
Web developer
Вы объявляете функцию с аргументом desic, после чего в конструкции switch проверяете значение переменной curScene, значение которой присвоили 0, т.к. id элемента при выборке учитывая что это body с id="0" единственный. Выходит что какое бы число вы не передавали аргументом, сработает только case 0.
Ответ написан
Комментировать
hahenty
@hahenty
('•')
несовпадение типов в case и curScene.

попробовать стоит
/*******/
  case "0": 
    if (decis == 1) {
       curScene = "1";
       alert("case 0: decis == 1");
/*******/
Ответ написан
copist
@copist
Empower people to give
Может быть так будет нагляднее ?
download?id=RNVwr0BNBg5N3lA5AbZEhpEqwfEW
https://www.dropbox.com/s/7wc7p39f1ugdub1/case_0_1...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
drugoi
@drugoi
Front-end Developer
Потому что у вас curScene всегда равен 0.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы