0

看我的例子。脚本应该将变量设置为零,然后每秒加 1。相反,该值每秒翻一番。有人知道出了什么问题吗?

http://jsfiddle.net/kdKyz/

<script>
function count_it()
  {
    window.counts = window.counts+1;
    $('.result').html(window.counts);
    window.setInterval(count_it, 1000);
  }
$('document').ready(function(){
  window.counts = 0;
  count_it();      
});
</script>
4

2 回答 2

3

count_it()不断setInterval()以自身作为参数调用,因此不断将值加倍。您需要将count_it()inready()替换为并从中window.setInterval(count_it, 1000)删除。window.setInterval(count_it, 1000)count_it()

于 2013-10-21T00:48:20.577 回答
1

setInterval()每 1000 毫秒调用一次传入的函数,直到您调用clearInterval(). 您的选择是切换到setTimeout()每次调用时只调用传入的函数一次,setTimeout()或者setInterval()在函数中调用一次ready(并从 中删除调用count_it)。

于 2013-10-21T00:53:20.063 回答