Попытка достичь этого с помощью JavaScript, но, похоже, что-то не так со сценарием

#javascript #html #css #button #click

#javascript #HTML #css #кнопка #нажмите

Вопрос:

Цель состоит в том, чтобы заставить кнопку отключаться при нажатии 10 раз менее чем за 1 минуту, но продолжать считать, если не нажимать 10 раз за 1 минуту? таким образом, отключается только при нажатии 10 раз менее чем за 1 минуту. Вы можете нажать девять раз в минуту, но ничего не происходит, кроме десятого раза, кнопка отключается, но если минута прошла, вы можете продолжать нажимать, но всегда максимум десять раз, и счетчик не сбрасывается, а продолжает увеличиваться.

 let accCounter = 0;
let totalCount = 0;

document.getElementById('totalCounter').innerText = totalCount;

document.getElementById('clap').onclick = function() {
    const clap = document.getElementById('clap');
    const clickCounter = document.getElementById("clicker");
    upClickCounter();

    function upClickCounter() {
      const clickCounter = document.getElementById("clicker");
      const totalClickCounter = document.getElementById('totalCounter');


      accCounter  ;
      clickCounter.children[0].innerText = ' '   accCounter;
      totalClickCounter.innerText = totalCount   accCounter;

}
}
      var endCount = 5; // 5 for testing - this would be 10
      var interval = 5000 // 5s for testing, 1 min= 1000 * 60;
      var clicks = [];
      var totalClicks = 0;

      $("#btn").click(function() {
        clicks.push(Date.now());
        totalClicks  ;
        checkIt();

      })

      function checkIt() {
        //if (clicks.length < endCount) return;

        while (clicks.length amp;amp; (Date.now() - clicks[0]) > interval) {
          console.log("removing: "   ((Date.now() - clicks[0]) / 1000))
          clicks.shift();
        }

        if (clicks.length < endCount) return;

        $("#btn")[0].disabled = true;
      } 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button id="clap" class="clap-container"></button>
<div id="totalCounter" class="total-counter"></div>
<div id="clicker" class="click-counter"></div> 

Комментарии:

1. Я бы использовал Rxjs

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

3. ДА, DCR, это то, чего я пытаюсь достичь, например, за одну минуту кнопку можно нажать максимум 10 раз, но если я нажму 9 раз и подожду 1 минуту, я смогу продолжать нажимать с увеличением числа счетчиков и не сбрасывать их через минуту, то же самое происходит и в течение следующих минут.

4. Кнопка отключается только тогда, когда кликов слишком много за одну минуту, иначе ничего не происходит!