Почему setInterval срабатывает только один раз?
Еще как вариант сделать оберткуnumInterval = setInterval( function(){
    funcForInterval(div);
  }, 500 )
Сейчас вы вызываете функцию funcForInterval сразу и в setInterval передаётся результат её выполнения. Нужно делать так:numInterval = setInterval(funcForInterval.bind(null, div),500)