2014-09-02 2 views
-2

Я хочу, чтобы функция запускалась каждые 1 секунду, где она проходила через эти четыре случая. Он ничего не сделает. Вот код.Javascript: Если оператор не работает с setInterval в функции

var countX = 1; 
    setInterval(finalBattle, 1000); 
    function finalBattle() { 
     switch (countX) 
     case 1: 
      elemAttack.innerHTML = finalCut[counter]; 
      counter++; 
      countX++; 
      break; 
     case 2: 
      elemComment.innerHTML = finalCut[counter]; 
      counter++; 
      countX++; 
      break; 
     case 3: 
      elemDefense.innerHTML = finalCut[counter]; 
      counter++; 
      countX++; 
      break; 
     case 4: 
      elemComment.innerHTML = finalCut[counter]; 
      counter++; 
      countX = 1; 
      break; 
    } 

Я проверил, и проблема не в элементе или массиве finalcut.

+3

'if (countX = 2)' –

+0

Не только это, но 'var countX = 1; if (countX == 2) 'все равно не будет работать должным образом. Вам нужно переместить 'countX' дальше области – CodingIntrigue

+0

Где инструкция' if'? * «Это ничего не сделает» * Так что это даже не называется «finalBattle»? –

ответ

0

Коммутатор должен обернуть заявления дела в {}

switch statement mdn link

так будет

var countX = 1; 
setInterval(finalBattle, 1000); 
function finalBattle() { 
    switch (countX) { 
     case 1: 
      elemAttack.innerHTML = finalCut[counter]; 
      counter++; 
      countX++; 
      break; 
     case 2: 
      elemComment.innerHTML = finalCut[counter]; 
      counter++; 
      countX++; 
      break; 
     case 3: 
      elemDefense.innerHTML = finalCut[counter]; 
      counter++; 
      countX++; 
      break; 
     case 4: 
      elemComment.innerHTML = finalCut[counter]; 
      counter++; 
      countX = 1; 
      break; 
    }  
} 
0

Ваше состояние должно использоваться == (равенство), а не = (присвоение).

Изменение:

if (countX = 2) { 

To:

if (countX == 2) { 
Смежные вопросы