Поэтому я попытался добавить слайд-шоу с помощью setTimeout, но после его добавления другая функция перестала работать. Я попытался изменить setTimeout на setInterval, но это тоже не сработало.
Вот мой код:
window.onload = function () {
setTimeout(function () {
let x = document.querySelector('.loaderWrap')
x.remove();
}, 1500)
}
let i = 0;
let images = [];
images[0] = ''
images[1] = ''
images[2] = ''
function changeImage() {
document.slide.src = images[i];
if(i<images.length - 1){
i++;
}else{
i=0;
}
setTimeout('changeImage()', 1000);
document.querySelector('.prev').onclick = function () {
if(i>0){
i--;
}
}
}window.onload = changeImage;
clearTimeout
— это функция, которая принимает идентификатор времени ожидания в качестве параметра. Идентификатор времени ожидания возвращаетсяsetTimeout
(чья перегрузка принимает строку не рекомендуется).Также обратите внимание, что при использовании
window.onload =
вы перезаписываете обработчик загрузки. ИспользуйтеaddEventListener('load', function() { .... })
для неразрушающего добавления прослушивателей событий.Я пробовал экспериментировать с clearTimeout и забыл удалить его, отредактировал сообщение.
Что такое
.loaderWrap
? Можете ли вы создать исполняемый фрагмент кода, воспроизводящий ваши проблемы? (Используйте панель инструментов)Отвечает ли это на ваш вопрос? Событие JavaScript window.onload не запущено
@trincot LoaderWrap — это мой стиль для загрузки анимации, и по истечении указанного времени (1500) этот элемент удаляется.
Но вы сказали (в заголовке) таймауты мешали. Как? Это касается того? Можете ли вы отредактировать свой вопрос и превратить его в исполняемый фрагмент, демонстрирующий неисправность?
Хорошо, я исправил это. Я только что использовал addEventListener, как сказал @HereticMonkey, и он отлично работает, спасибо за помощь!