按键复位功能

Reset function by button

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

这是我的代码:

HTML:

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

JavaScript:

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

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

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

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

let btn = document.querySelector('#btn');

btn.addEventListener('click', ()=>{
    click();
})

function click() {
    setTimeout(function() {
        btn.style.display = 'none';
    }, 1000);
}

点击未正确定义:) 你应该试试jQuery,它会让你的学习更轻松! 同时在 Google Chrome 上按 f12 以显示开发人员控制台,那里会显示错误。

您需要在 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);
}
<button id="btn">Click me. I am disappearing ⏳ <span id="time"></span></button>

这是我的建议:

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();
};
<button id="btn">Click me before it's too late (<span id="counter">10</span>)</button>