我有一个带有许多按钮的视频,每个按钮在等待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秒钟并立即运行它。我怎样才能做到这一点?
答案 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>