Мне нужно циклически переключаться между количеством радиокнопок X и проверять каждое присоединение таймаута Y секунд каждый раз.Однако когда пользователь нажимает, мне нужно переопределить запомненное в настоящий момент «следующее» радио.Я попытался очистить тайм-аут, но это не то место, где хранится следующий клик. JSFiddle
const roadster__activators = document.querySelectorAll('.roadster__activator');
let next__indicator;
const init = () => roadster__activators[0].click();
const nextIndicator = (e) => {
const indicator = e.currentTarget;
let racer, func, isKeyClick;
// if a human has clicked the radio button
e = e || window.event || {x: null};
if( e.x !== null ){
next__indicator = indicator.nextElementSibling;
clearTimeout(racer);
}
if (!indicator.classList.contains('__last')) {
func = () => next__indicator.click();
} else {
func = init;
}
racer = setTimeout(func, 5000);
};
roadster__activators.forEach(activator => activator.addEventListener('click', nextIndicator));
init();
<div class="roadster">
<input class="roadster__activator" type="radio" name="roadster" id="alpha">
<input class="roadster__activator" type="radio" name="roadster" id="bravo">
<input class="roadster__activator" type="radio" name="roadster" id="charlie">
<input class="roadster__activator" type="radio" name="roadster" id="delta">
<input class="roadster__activator __last" type="radio" name="roadster" id="echo">
</div>