我正在尝试将setTimeout包装在一个立即调用的函数表达式中,该函数表达式创建该函数,然后再按上面的方式自行调用,并自动启动循环:
以下是参考:enter link description here
出于某种原因,它会运行一次然后停止。
//Spaceship move
function spaceShipMove(spaceShipToMove){
var randomY = Math.floor(Math.random());
spaceShipToMove.style.webkitTransform = 'translate(-3000px, ' + randomY + 'px)';
}
//Spaceship
var spaceShipsList = createMultipleSpaceShips(500);
for (var i = 0; i < spaceShipsList.length; i++){
var aSpaceShip = spaceShipsList[i];
app.dom.mainWrapper.appendChild(aSpaceShip);
(function t() {
setTimeout(function (spaceShipGo) {
spaceShipMove(spaceShipGo);
}, i * 300, aSpaceShip)
})();
答案 0 :(得分:0)
试试这个
for (var i = 0; i < spaceShipsList.length; i++){
var aSpaceShip = spaceShipsList[i];
app.dom.mainWrapper.appendChild(aSpaceShip);
setTimeout(spaceShipMove.bind(null, aSpaceShip), i * 300)
}