2016-12-13 8 views
-2

У меня есть видео со многими кнопками, каждая кнопка делает переадресацию видео в определенную точку, после ожидания 5 секунд.пропуская время ожидания на setTimeout

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

Не уверен, что вопрос является? Вы называете 'clearTimeout (timerId)' внутри 'javascript'? – guest271314

+0

Нет clearTimeout, это просто отменит функцию, мне нужно будет пропустить 5 секунд и немедленно ее запустить –

+0

Обратите внимание, что вы устанавливаете и перезаписываете 'timerId' при каждом вызове' setTimeVid'. – guest271314

ответ

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>

+1

Вы можете упростить 'setTimeout (yourFunction, 2000)'; 'toggleDisable' никогда не используется; и в skipbutton вам не нужно отключать кнопку явно после вызова 'yourFunction()' – Bergi

+0

@Arkadis Stepanov - это то, что вы ищете? – mattias