Очистить запрограммированный выбор следующего переключателя при щелчке пользователя - PullRequest
0 голосов
/ 16 ноября 2018

Мне нужно циклически переключаться между количеством радиокнопок 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...