2015-02-25 2 views
1

Я пытаюсь отснять 60 секунд, как только я нажимаю кнопку «Начало», и в 0 я не хочу просто спрятать счетчик, я хочу, чтобы он был сброшен. Я столкнулся с двумя проблемами: Когда я снова нажимаю кнопку «Начало», она не начинается. Кнопка «Начало» не отключена, как только я нажму на нее, чтобы начать обратный отсчет. Пока он отсчитывает, когда я нажимаю кнопку «Начало», он ускоряет обратный отсчет. Любая помощь приветствуется, вот код:SetInterval 60 секунд проблема обратного отсчета jQuery

function begin() { 
    $('#begin').prop('disabled'); 
    myTimer = setInterval(function() { 
     $('#timing').html(timing); 
     if (timing === 0) { 
     alert('Too late! Try again'); 
     clearInterval(myTimer); 
     $('#timing').hide(); 
     } 
     timing--; 
    }, 1000); 
    } 

ответ

3

У вас есть несколько вопросов:

  1. Вам нужно .prop("disabled", true) отключить кнопку.
  2. При перезапуске таймера вам необходимо сбросить значение timing.
  3. Вам нужно включить кнопку, когда таймер закончится, чтобы ее можно было снова нажать.
  4. Вам необходимо отобразить начальный счет, когда вы запустите таймер

Код:

var timing; 
var myTimer; 

function begin() { 
    timing = 60; 
    $('#timing').html(timing); 
    $('#begin').prop('disabled', true); 
    myTimer = setInterval(function() { 
     --timing; 
     $('#timing').html(timing); 
     if (timing === 0) { 
     alert('Too late! Try again'); 
     clearInterval(myTimer); 
     $('#begin').prop('disabled', false); 
     } 
    }, 1000); 
} 

Работа демо (с более коротким интервалом времени, поэтому он отсчитывает быстрее): http://jsfiddle.net/jfriend00/xxs7t0gd/

+0

Спасибо ! это полностью сработало, хорошо сделано – Amah

+0

@Amah - поскольку похоже, что вы, возможно, относительно новичок в StackOverflow, знаете ли вы, что, когда вы получаете ответ на свой вопрос, вы должны отметить лучший ответ, установив зеленую галочку слева от ответ. Это указывает сообществу, что на ваш вопрос был дан ответ, и вы зарабатываете как вы, так и человек, предоставляющий ответ, некоторые точки репутации. – jfriend00

+0

спасибо за головы. – Amah

Смежные вопросы