Как я могу нажимать на кнопки во время выполнения цикла? - PullRequest
0 голосов
/ 15 октября 2018

У меня есть кнопки с тем же именем класса, и я хочу нажимать их во время цикла.Я написал что-то подобное, но это не работает.Нажмите только 1 кнопку

let btns = document.getElementsByClassName('key');

for (let i = 0; i < btns.length; i++) {
    btns[i].click();
};

1 Ответ

0 голосов
/ 15 октября 2018

См. рабочий пример .Также вот ссылка на EventTarget.dispatchEvent ()

window.onload = ()=>{
  // get all our buttons
  let buttons = document.getElementsByClassName('button-clickers');
  // the event we plan on invoking
  let clickEvent = new Event('click');
  // assign an event handler for each button
  for(let i = 0; i < buttons.length; i++){
    buttons[i].addEventListener('click', function(){
      console.log(`hi, you have triggered ${this.value}'s click event.`);
    });
  }
  // trigger the click event for each button
  for(let i = 0; i < buttons.length; i++){
    buttons[i].dispatchEvent(clickEvent);
    // buttons[i].click(); // This works too.
  }
}
<input type="button" class="button-clickers" value="Bnt1">
<input type="button" class="button-clickers" value="Bnt2">
<input type="button" class="button-clickers" value="Bnt3">
<input type="button" class="button-clickers" value="Bnt4">
<input type="button" class="button-clickers" value="Bnt5">
<input type="button" class="button-clickers" value="Bnt6">
<input type="button" class="button-clickers" value="Bnt7">

Возможно, ваша проблема связана с тем, как вы получаете все кнопки или назначаете им обработчики событий.Если они были созданы динамически, были ли вы уверены, что обработчик событий был назначен после создания кнопки?:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...