Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как реализовать имитацию 3 кликов после нажатия на кнопку? (https://javascript.ru/forum/misc/69654-kak-realizovat-imitaciyu-3-klikov-posle-nazhatiya-na-knopku.html)

sergey24 09.07.2017 20:06

Как реализовать имитацию 3 кликов после нажатия на кнопку?
 
Добрый день. Суть вопроса такова, имеется 4 кнопки, требуется после клика на первую автоматически имитировать клики по остальным с задержкой.
<button id="button-main"></button>
<button id="button-1"></button>
<button id="button-2"></button>
<button id="button-3"></button>


Сообразил так, но не работает:
<script type="text/javascript">
$('#button-main').click(function(){
  setTimeout(function(){
  $('#button-1').trigger('click');
  },3000);
  setTimeout(function(){
  $('#button-2').trigger('click');
  },4000);
  setTimeout(function(){
  $('#button-3').trigger('click');
  },5000);
 });
</script>

Стоит отметить, что при таком коде все 4 кнопки отлично кликаются после загрузки страницы:
<script type="text/javascript">
$(document).ready(function(){
  setTimeout(function(){
  $('#button-main').trigger('click');
  },2000);
  setTimeout(function(){
  $('#button-1').trigger('click');
  },3000);
  setTimeout(function(){
  $('#button-2').trigger('click');
  },4000);
  setTimeout(function(){
  $('#button-3').trigger('click');
  },5000);
 });
</script>

рони 09.07.2017 20:21

Цитата:

Сообщение от sergey24
Сообразил так, но не работает:

работает, оберните код в ready

sergey24 09.07.2017 20:24

рони,
Обернул в ready, не помогло.

рони 09.07.2017 20:57

sergey24,
клинкуть по первой кнопке
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css"> button{
    height: 50px;
    width: 100px;
    background-color: hsla(120, 61%, 34%, 1);
  }
   button.red{
     background-color: hsla(0, 100%, 50%, 1);
   }

  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

  <script>
$(function() {
  var i = 0, b = $("button");
  function click()
  {
     $(this).toggleClass("red")
  }
  b.on({"click": click})

  $('#button-main').click(function(){
  setTimeout(function(){
  $('#button-1').trigger('click');
  },3000);
  setTimeout(function(){
  $('#button-2').trigger('click');
  },4000);
  setTimeout(function(){
  $('#button-3').trigger('click');
  },5000);
 });


});
  </script>
</head>

<body>
<button id="button-main"></button>
<button id="button-1"></button>
<button id="button-2"></button>
<button id="button-3"></button>


</body>
</html>

sergey24 09.07.2017 21:09

рони,
Сейчас обратил внимание что каждая последующая кнопка подгружается через ajax после клика на предыдущую. Возможно поэтому мой код и не работает, хотя тогда не могу понять, почему клики 4 кнопок работают, странно, буду разбираться. Спасибо за Ваш код, возможно поможет.

рони 09.07.2017 21:44

Цитата:

Сообщение от sergey24
кнопка подгружается через ajax

в ajax и ставьте trigger


Часовой пояс GMT +3, время: 04:58.