Задать вопрос
GGybarev
@GGybarev
newbie FrontEnd

Куда поставить setTimeOut?

Добрый день
Есть вот такой код, проблема в том, что он выполняется сразу, а не постепенно(т.е. нажал кнопку - подождал, как человек), таймер почему-то не работает... Сам разобраться не могу, измучился уже, куда не втыкал setTimeOut - либо не работает, либо выходит также.

var keepContinue = 0;
var cancel = setInterval(function(){
	keepContinue++;
	var seeMore = document.getElementsByClassName('pam uiBoxLightblue uiMorePagerPrimary');
	if(seeMore.length == 1) {
		seeMore[0].click();
	} else {
		inviteAll();
	}
	console.log(keepContinue);
}, 2000)

function inviteAll(){
	clearInterval(cancel);
	var buttons;
			buttons = document.getElementsByClassName('_42ft _4jy0 FriendRequestAdd addButton _4jy3 _517h _51sy');
			var i = 0;
			(function (){
			  if (i++ > buttons.length) return;
			  setTimeout(function(){
			  	console.log('[' + i + ']');
			  	console.log(buttons[i]);
					for(var i=0; i < buttons.length;i++) {
						if(buttons[i].className === '_42ft _4jy0 FriendRequestAdd addButton _4jy3 _517h _51sy') {
						buttons[i].click();
						console.log('Clicked');
					}
				}
		
			  }, 1500);
			})();
}
  • Вопрос задан
  • 195 просмотров
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 1
dtrm
@dtrm
beginner
У вас одновременно вызываются несколько функций setTimeout с одинаковой задержкой. Самым простым решением будет умножить время задержки на i.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы