在setTimeout上跳过等待时间

时间:2016-12-13 01:21:58

标签: javascript settimeout

我有一个带有许多按钮的视频,每个按钮在等待5秒后将视频转发到特定点。

function setTimeVid(button) {
            if(button.id=='b1'){
                timerId=setTimeout(function(){
                    vid.currentTime=point1;
                },5000);
            }
            if(button.id=='b2'){
                timerId=setTimeout(function(){
                    vid.currentTime=point2;
                },5000); 
            }
// and 5-6 more

button.id等于"skipping"的最后一个按钮应取消5秒等待时间,并立即运行该功能。

假设只有setTimeout已经启动时才能按下“跳过”按钮。我需要它等待5秒钟并立即运行它。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

您正在寻找clearTimeout方法

let timeoutReference;

const startButton = document.getElementById('start');
const skipButton = document.getElementById('skip');

const yourFunction = () => {
  const text = document.createElement('div');
  text.innerHTML = 'sarasa';
  document.body.appendChild(text);
  skipButton.disabled = true;
}

const waitTime = () => {
  timeoutReference = setTimeout(yourFunction, 2000);
}

startButton.addEventListener('click', () => {
  skipButton.disabled = false;
  waitTime();
});

skipButton.addEventListener('click', () => {
  clearTimeout(timeoutReference);
  yourFunction();
});
<button id="start">Start</button>
<button id="skip" disabled>Skip</button>