Функция setTimeout()
Здравствуйте. Подскажите как правильно использовать функцию setTimeout() для моего кода:
function puskAvr(){ let timer; // пока пустая переменная x =8; // стартовое значение обратного отсчета countdown(); // вызов функции function countdown(){ // функция обратного отсчета document.getElementById('timerAvr').innerHTML ='Таймер АВР 0,4кВ: ' + x; x--; // уменьшаем число на единицу if (x<0){ clearTimeout(timer); // таймер остановится на нуле } else { timer = setTimeout(countdown, 1000); } } } let output_divs = [ document.querySelector('.imgDKS1') ] document.querySelector('.button').addEventListener('click', e => { if (e.target.classList.contains('red_button_6')) { puskAvr(); let links_arr = e.target.dataset.link.split(` `), tops_arr = e.target.dataset.top.split(` `), lefts_arr = e.target.dataset.left.split(` `) output_divs.forEach((el, i) => { el.insertAdjacentHTML('beforeEnd', `<img src="${links_arr[i]}" style="position:relative; top:${tops_arr[i]}px;left:${lefts_arr[i]}px;">` ) }) } }) Задача в том что бы при нажатии red_button_6 запускался таймер с функции puskAvr(), и после того как переменная x достигнет 0 выполнить оставшуюся часть кода: let links_arr = e.target.dataset.link.split(` `), tops_arr = e.target.dataset.top.split(` `), lefts_arr = e.target.dataset.left.split(` `) output_divs.forEach((el, i) => { el.insertAdjacentHTML('beforeEnd', `<img src="${links_arr[i]}" style="position:relative; top:${tops_arr[i]}px; left:${lefts_arr[i]}px;">` ) }) |
sssema96,
строки 23 - 32 перенести в строку 10 |
рони,
А как с помощью setTimeout() сделать выдержку времени 8с. перед выполнением этого кода? |
Цитата:
|
рони,
У меня есть кнопка при нажатии на которую выводятся изображения в указанных координатах <button class="show-image6 red_button_6" data-link="img/greenled.png img/avtomatOff04kV.png img/diodYellowOff.png img/diodRedButtonT2.png img/avtomatOn04kV.png img/diodYellowOn.png img/diodBlackButtonT2.png" data-top="151 192 400 466 190 406 465" data-left="832 150 27 27 150 27 24" type="button" id="click_red6"></button> Сам скрип к ней вот: let output_divs = [ document.querySelector('.imgDKS1'), document.querySelector('.vvodT2'), document.querySelector('.vvodT2'), document.querySelector('.vvodT2'), document.querySelector('.vvodT1'), document.querySelector('.vvodT1'), document.querySelector('.vvodT1') ] document.querySelector('.button').addEventListener('click', e => { if (e.target.classList.contains('red_button_6')) { let links_arr = e.target.dataset.link.split(` `), tops_arr = e.target.dataset.top.split(` `), lefts_arr = e.target.dataset.left.split(` `) output_divs.forEach((el, i) => { el.insertAdjacentHTML('beforeEnd', `<img src="${links_arr[i]}" style="position:relative; top:${tops_arr[i]}px; left:${lefts_arr[i]}px;">` ) }) } }) Моя задача что бы через 8 секунд после нажатия на red_button_6, появились те самые изображения. |
sssema96,
:-? function puskAvr(target){ let timer; // пока пустая переменная x =8; // стартовое значение обратного отсчета countdown(); // вызов функции function countdown(){ // функция обратного отсчета document.getElementById('timerAvr').innerHTML ='Таймер АВР 0,4кВ: ' + x; x--; // уменьшаем число на единицу if (x<0){ clearTimeout(timer); // таймер остановится на нуле let links_arr = target.dataset.link.split(` `), tops_arr = target.dataset.top.split(` `), lefts_arr = target.dataset.left.split(` `); output_divs.forEach((el, i) => { el.insertAdjacentHTML('beforeEnd', `<img src="${links_arr[i]}" style="position:relative; top:${tops_arr[i]}px;left:${lefts_arr[i]}px;">` ) }) } else { timer = setTimeout(countdown, 1000); } } } let output_divs = [ document.querySelector('.imgDKS1') ] document.querySelector('.button').addEventListener('click', e => { if (e.target.classList.contains('red_button_6')) { puskAvr(e.target); } }) |
рони,Спасибо, не пойму как влияет e.target на выполнение?
Вы в puskAvr(e.target);добавили это в ( ) |
Цитата:
|
Часовой пояс GMT +3, время: 08:44. |