2014-09-02 19 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; 
    } 

我检查过,问题不是elemAttack或最终切割数组。

+3

'if(countX = 2)' – 2014-09-02 15:01:04

+0

不仅如此,而且'var countX = 1;如果(countX == 2)'仍然不能按预期工作。您需要将'countX'进一步移至范围 – CodingIntrigue 2014-09-02 15:03:50

+0

'if'语句在哪里? *“它不会做任何事情”*所以它甚至不叫'finalBattle'? – 2014-09-02 15:07:42

回答

0

你的交换机需要来包装case语句在{}

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) { 

要:

if (countX == 2) { 
相关问题