Javascript函数setInterval()只能运行一次

伙计们!
我想问一下Javascript函数setInterval().
我的问题是setInterval()只工作一次,而不是重复.

这是我的HTML代码

<button id = 'btun' name = 'btun' onclick = 'changecolor();' class = 'btn btn-success btn-block'>Color Change</button>

和Javascript代码

function below(t){
  var button = document.getElementById('btun');
  var quadrant = (t*t + 2*t + 1)+"px";
  console.log('ye');
  button.style.marginTop = quadrant;
  document.write(pix);
}
var doBelow = setInterval(below(t++),1);
if(t > 50){
  clearInterval(doBelow);
}

我找不到有什么不对.

解决方法:

setInterval期望将回调作为第一个参数,但是您正在调用实际函数.

通话应如下所示

 setInterval(function() {
      below(t++); }
  ,1);

所以在这里你要创建一个匿名回调,它将在下面调用你的函数.并且最好将退出条件t> = 50置于函数下方

上一篇:javascript – setInterval给我TypeError:无法调用undefined的方法’apply’


下一篇:javascript – 悬停时jQuery暂停功能?