Причина, по которой ваш таймер сбрасывается, заключается в том, что вы не очищаете тайм-аут.
вам нужно сделать ссылку на тайм-аут, а затем использовать clearTimeout (), когда вы делаете быстрое изменение.Я не думаю, что это возможно или целесообразно сделать это встроенным, как у вас, так что ваш код должен быть подвергнут рефакторингу
let imgSrc1 = 'https://images.pexels.com/photos/248797/pexels-photo-248797.jpeg?auto=compress&cs=tinysrgb&h=350'
let imgSrc2 = 'https://images.pexels.com/photos/67636/rose-blue-flower-rose-blooms-67636.jpeg?auto=compress&cs=tinysrgb&h=350'
let imgElement = document.getElementById('picture');
let timeout;
function change() {
if(imgElement.src === imgSrc1) {
imgElement.src = imgSrc2;
} else {
imgElement.src = imgSrc1;
}
if (timeout) {
clearTimeout(timeout);
}
timeout = setTimeout(change, 3000);
}
Вам даже не нужна вторая функция fastChange.Теперь вы можете отправить прослушиватель onClick на change()
следующим образом:
document.getElementById («все, что вы хотите нажать»). OnCLick = change;