2015-02-16 2 views
0

У меня есть этот код:setInterval сброса при щелчке

$(document).ready(function(){ 
     var count = 0; 
     var clicks= 0; 
     $(".press").click(function() { 
      count++; 
      clicks++; 
      console.log(count); 
      $('#animation2').html("My current count is: "+clicks); 
      if(count==1){ 
       count=0; 
       if($('.animation img').css('left') == '100px'){ 
        $('.congrats').css('display','block'); 
        $("#startClock").css('display','block'); 
        $(".press").css('display','none'); 
        $('.animation img').css('left','0'); 
        var counter=0; 
        span.innerHTML = counter; 
       }else{ 
        $('.animation img').animate({ "left": "+=10px" }, 1); 
       } 
      } 
     }); 
    span = document.getElementById("count"); 
     $("#startClock").click(function() { 
      clicks=0; 
      $("#animation2").css('display','block'); 
      $('#animation2').html("My current count is: "+clicks); 
      var counter =30; 
      $('.congrats').css('display','none'); 
      $('.press').css('display','block'); 
      $(this).css('display','none'); 
      setInterval(function() { 
      counter--; 
       if (counter >= 0) { 
       span.innerHTML = counter; 
       } 
       if (counter === 0) { 
       $("#startClock").css('display','block'); 
       $('.press').css('display','none'); 
       clearInterval(counter); 
       } 
      }, 1000); 
     }); 
    }); 

Этот код иметь counterdown ведьмы необходимо сбросить, когда я нажимаю кнопку с идентификатором = startClock во второй раз. Если я дважды щелкнул setInterval, уменьшите 2 секунды внезапно.

+0

Можете ли вы создать пример на http://jsfiddle.net/? –

+0

http://jsfiddle.net/9cjp9koc/ –

+0

Что-то вроде этого? http://jsfiddle.net/9cjp9koc/1/ –

ответ

1

Вы не используете setInterval и clearInterval правильно. Когда вы вызываете setInterval, он возвращает идентификатор, который вы можете использовать позже с clearInterval. Вот пример:

var counter = 30; 
var my_interval = setInterval(function(){ 
    counter--; 
    if(counter <= 0) { 
     clearInterval(my_interval); 
    } 
}, 1000); 

Это будет отсчет времени от 30 секунд до тех пор, пока счетчик не достигнет 0, а затем остановится.

Я предлагаю вам идти читать о времени ожидания и интервалы here

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