0

Всем привет! Есть функция, которая заполняет ячейки элементами массива:

var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];

(function addInCell() {
    var cell = document.getElementsByTagName('input');

    for (var i = 0; i <= cell.length; i++) {
       cell[i].value = arr[i];
    }
})();

Подскажите, пожалуйста, как осуществить заполнение ячеек не сразу, а пошагово - 1, задержка, 2, задержка и т.д.? Т.е., как бы анимированное заполнение.

Astor
  • 2,833

1 Answers1

1

window.onload = function() {
  var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];

(function addInCell() { var cell = document.getElementsByTagName('input');

for (var i = 0; i &lt; cell.length; i++) {
  var s = function(i) {
    setTimeout(function() {
      cell[i].value = arr[i];
    }, 1000 * i)
  }
  s(i);
}

})(); }

<input type="text" name="" id="">
<input type="text" name="" id="">
<input type="text" name="" id="">
<input type="text" name="" id="">
<input type="text" name="" id="">
<input type="text" name="" id="">
Jean-Claude
  • 5,841
  • 2
  • 20
  • 45
  • Как то много лишнего, + переприсвоение непонятной переменной s? Сделай замыкание и все – Василий Барбашев Mar 30 '16 at 19:24
  • @ВасилийБарбашев и как именно замыкание? – Jean-Claude Mar 30 '16 at 19:33
  • @ВасилийБарбашев вы про это? http://ru.stackoverflow.com/questions/506556/%D0%92%D0%BE%D0%BF%D1%80%D0%BE%D1%81-%D0%BF%D1%80%D0%BE-%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C-%D0%B2%D0%B8%D0%B4%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B8-%D0%B7%D0%B0%D0%BC%D1%8B%D0%BA%D0%B0%D0%BD%D0%B8%D1%8F – Jean-Claude Mar 31 '16 at 07:51