2011-03-20 72 views
1
(function() { 
    var count = { 
     digit: 0, 
     increment: function() { 
      var interval = setInterval(function() { 
       if (++count.digit == 10) { 
        clearInterval(interval); 
        count.decrement(); 
       } 
       var update = document.getElementById("liveUpdate"); 
       update.innerHTML = count.digit; 
      }, 500); 
     }, 
     decrement: function() { 
      var interval = setInterval(function() { 
       if (--count.digit == -1) { 
        clearInterval(interval); 
       } 
      }, 500); 
     } 
    }; 
    count.increment(); 
})(); 

它停下来,但它不会停下来?可能是什么问题呢?为什么这个简单的JavaScript增量和减量方法不起作用?

+1

你的代码是正确的,但你忘了在'update'元素显示'digit'。 – jerone 2011-03-20 11:33:57

回答

4

您的decrement函数从不更新任何地方的输出。变量正在关闭,但不显示在屏幕上。

尝试(或检查相应的JSFiddle):

(function() { 
    var update = document.getElementById("liveUpdate"); 
    var count = { 
     digit: 0, 
     increment: function() { 
      var interval = setInterval(function() { 
       if (++count.digit == 10) { 
        clearInterval(interval); 
        count.decrement(); 
       } 
       update.innerHTML = count.digit; 
      }, 500); 
     }, 
     decrement: function() { 
      var interval = setInterval(function() { 
       if (--count.digit == -1) { 
        clearInterval(interval); 
       } 
       update.innerHTML = count.digit; 
      }, 500); 
     } 
    }; 
    count.increment(); 
})(); 
2

它不是一个错误,它是一个功能;-)。 setInterval()以给定间隔(500 ms)在循环中运行给定函数。有关详细信息,请参阅此article

相关问题