【问题标题】:Reset function by button按键复位功能
【发布时间】:2020-12-28 10:49:44
【问题描述】:

我有一个按钮,该按钮在一秒钟后消失。 如果我单击该按钮,我希望该功能将重置并且我将再获得一秒钟的时间来单击。而且-如果我没有点击这一秒,我希望按钮会消失。 (如果我点击一秒钟,按钮不会消失,如果我错过一秒钟,它就会消失,但如果我点击,我会再获得一秒钟,依此类推......)

这是我的代码:

HTML:

<button id="btn">click
</button>

JavaScript:

let btn = document.querySelector('#btn');
    btn.addEventListener('click', ()=>{
    click();
    })
    setTimeout(function click() {
        btn.style.display = ('none');
            }, 1000);

该代码不起作用。 我是一个绝对的初学者,所以任何反馈都会对我有所帮助。

如果我的问题不明白,请在 cmets 中给我写信或编辑问题。

【问题讨论】:

    标签: javascript function dom-events


    【解决方案1】:

    将您的 javascript 更改为以下内容:

    let btn = document.querySelector('#btn');
    
    btn.addEventListener('click', ()=>{
        click();
    })
    
    function click() {
        setTimeout(function() {
            btn.style.display = 'none';
        }, 1000);
    }
    

    点击未正确定义:) 你应该试试jQuery,它会让你的学习更轻松! 也可以在谷歌浏览器上按 f12 来显示开发者控制台,那里会显示错误。

    【讨论】:

      【解决方案2】:

      您需要在setTimeout 中应用display:none。这是一个例子。

      let btn = document.querySelector('#btn');
      let time = document.querySelector('#time');
      const timeLimit = 10;
      let timeoutId, intervalId;
      
      time.innerText = timeLimit;
      
      let startTime;
      
      window.onload = () => {
        startTime = Date.now();
        startTimer();
        removeButton();
      }
      
      
      btn.addEventListener('click', stop);
      
      
      function stop() {
        intervalId && clearInterval(intervalId);
        timeoutId && clearTimeout(timeoutId);
      }
      
      
      function startTimer() {
        let count = 1;
        
        intervalId = setInterval(() => {
          if(count === 10) clearInterval(intervalId);
        
          time.innerText = timeLimit - count;
          count++;
        }, 1000);
      }
      
      
      function removeButton() {
        timeoutId = setTimeout(() => {
          btn.style.display = 'none';
        }, timeLimit*1000);
      }
      &lt;button id="btn"&gt;Click me. I am disappearing ⏳ &lt;span id="time"&gt;&lt;/span&gt;&lt;/button&gt;

      【讨论】:

      • 谢谢。如果我不点击,我希望按钮会消失。那我能做些什么呢?
      • @Chanif 我已经更新了代码。请立即检查。如果您觉得这有帮助,请点赞。
      【解决方案3】:

      这是我的建议:

      var c = 10;
      var timer;
      
      clock();
      
      function clock() {
        timer = setInterval(countdown, 1000);
      }
      
      function countdown() {
        counter.innerHTML = --c;
        if (c === 0) {
          btn.style.display = 'none';
          clearInterval(timer);
        }
      }
      
      btn.onclick = function() {
        clearInterval(timer);
        c = 10;
        counter.innerHTML = c;
        clock();
      };
      &lt;button id="btn"&gt;Click me before it's too late (&lt;span id="counter"&gt;10&lt;/span&gt;)&lt;/button&gt;

      【讨论】:

      • 谢谢。再次单击时,该功能可以再次开始计数(从 10 到 0)吗?希望你能理解我的问题。
      • 你的意思是一次?
      • 没有。如果我点击,它会重新计数,但如果不点击,他会消失。依此类推……如果我点击它,它会重新开始计数,但如果不是——它就会消失,游戏就会结束。我的意思是,只要我点击,它就不会消失并重新开始计数。希望你能理解我。
      • 谢谢。您喜欢在变量中使用 var 是否有特殊原因?
      • 您也可以使用let。见这里:stackoverflow.com/questions/762011/…
      猜你喜欢
      • 2011-04-03
      • 2019-07-22
      • 2022-09-23
      • 2021-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多