如何在JS中调用2次以上时延迟函数执行?

时间:2016-04-23 11:49:51

标签: javascript

以下是我的代码的链接。请多次单击该按钮以查看我的意思。我试图在函数调用之间间隔多次调用相同的函数。请帮我。   http://codepen.io/arminemash/pen/KzBBjN

HTML

<div id='generalwrapper'> 
    <div id='general'>                  
        <div  id='1' class='cell' onclick='simon(this.id)'></div>
        <div  id='2' class='cell' onclick='simon(this.id)'></div>           
        <div  id='3' class='cell'  onclick='simon(this.id)'></div>
        <div   id='4' class='cell'   onclick='simon(this.id)'></div>
     </div> 
    <div id='buttondiv'>
        <button onclick='startGame()'>On</button>
    </div>
</div>

的JavaScript

var browser=[];
var count = 1;

function startGame(){ 
    for(var i=0;i<count;i++){       
        browserturn();  
    }
    count++;
}

function browserturn(){
    var x=getNumber();
    var element=x.toString();
    browser.push(element);
    var y=document.getElementById(element);
    y.click();  
    $(y).delay(100).fadeOut().fadeIn('slow');   
}

function getNumber(){   
    var randomNumber=Math.floor((Math.random() * 4)+1);
    return randomNumber;
}

1 个答案:

答案 0 :(得分:0)

这将保证所有游戏之间的差距为100毫秒

var tasks = []
var createTask = function(task) {
  tasks.push(function() {
      task(function() {
        tasks.shift()
        var next = tasks[0]
        next()

    })
  })
  if (tasks.length === 1) {
     tasks[0]()
  }
}

var startGame = function() {
  createTask(function(next) {
    ... // whatever happens
    // if ready call next
    setTimeout(next, 1000)
  })
}

http://codepen.io/lipp/pen/eZjopG