0
rockdrop(0);
rockdrop(1);

function rockdrop(Number) {
  for (i = Number; i <= Number; i++) {
    var rockSide = Math.round(Math.random() * (94 - 6) + 6);
    $rockItem = document.createElement('img');
    $gameTwo.insertAdjacentElement("afterbegin", $rockItem);
    $rockItem.setAttribute('id', "rock" + i);
    rockId = document.querySelector('#rock' + i);
    rockId.style.bottom = 575 + 'px';
    rockId.style.left = rockSide + '%';
    $rockItem.setAttribute('src', "./img/rock (1).svg");
    $rockItem.classList.add('rock');
    console.log(rockId);

    function drop() {
      rockId.style.bottom = parseInt(rockId.style.bottom) - 1 + 'px';
      if (parseInt(rockId.style.bottom) <= -53) {
        rockId.remove();
      }
    }
    setInterval(drop, 100);
  }
}

Как сделать что бы функция с новым элементом вызывалась отдельно?

Сейчас срабатывает так: функция вызвана 2 раза с разными параметрами. консоль лог который вы видите показывает все как надо каждая функция с отдельным элементом. но внутренняя функция drop почему-то срабатывает только на самом первом вызове rockdrop(0); Получается так: при запуске создаются два элемента с id rock0 и rock1 но drop(); срабатывает только на элементе rock1; Подскажите что я делаю не так?

Юрий
  • 101
  • а может быть такое что переменная rockId при новом вызове функции переопределилась? – Юрий Aug 15 '21 at 09:23
  • Код у вас, извините, очень странный. Во первых, почему у вас название параметра функции Number, оно совпадает с названием объекта (класса) Number в javascript, то есть вы затираете его область видимости. Во вторых вы используете цикл, который выполняется один раз? Для чего тогда вопрос? В третьих не понятно, где вы определяете rockId переменную, и, конечно, она переопределяется. Можете ее замкнуть в функции drop написав в первой строке, например. const currentRockId = rockId; и работать уже с currentRockId. Вообще по коду больше вопросов, чем ответов – Денис Степанов Aug 15 '21 at 09:53
  • это не может, а так и есть. Плюс непонятно почему ты определил только переменную rockSide, а остальные сделал глобальными – Grundy Aug 15 '21 at 09:53

0 Answers0