2016-02-03 4 views
1

У меня уже есть кнопка запуска, но мне нужно перезапустить кнопку при выполнении условий и снова нажать кнопку.как сбросить время после выполнения условия

HTML КОД:

<div id="content" class="row-fluid"> 
    <div class="span6 pull-right align-right white" style="max-width: 540px;"> 
    <div style="display: block;"> 
+1

Пожалуйста, добавьте HTML и CSS, а также - JSFiddle был бы хорош – Thangaraja

ответ

0

добавил «щелкнул» вар, чтобы проверить, если время необходимо перезапустить

//---------------------------toggle----------------------- 
$(".picture").click(function() { 
    $("#container").toggle("fold", 500); 

}); 
$(".numbers1").click(function() { 
    $("#numbers").toggle(); 

}); 
//========================================================== 

var done = true; 
var clicked = true; 
function check(counter){ 

     if (counter >= 0) { 
      $("#count").text(counter); 
     } 
     if (counter === 0 && winner === 0) { 
      $("<div title='Oh no!'><center><img src='https://www.foreignlanguagesforkids.com/playa/images/shark.png'></center><p style='text-align: center;'>Let's get Calamity Carl to the hospital, pronto! Lucky for Carl, the doctors are experts at fixing him up and he will be as good as new in no time, only to get himself in trouble all over again!</p><div style='margin-top: 15px; width: 100%;'><div style='float: left; width: 48%; text-align; center;'><a class='btn button' href='https://www.foreignlanguagesforkids.com/playa'>Play Again</a></div><div style='float: right; width: 48%; text-align: center;'><a class='btn button' href='https://www.foreignlanguagesforkids.com/playa'>End Game</a></div><div style='clear: both;'></div></div></div>").dialog(); 
      clearInterval(timer); 
      $('#fail')[0].play(); 
      clicked = true; 
     } 

} 
$("#startClock").click(function() { 
var counter = 60; 
var winner = 0; 
var winners=0; 



//===============================================CAR DRAGGABLE=================== 

    $("#car").draggable({ 
    revert: "invalid", containment: "#wrapper", 
    start: function(event, ui){ 
     if(!done) return false; 
    }, 
    stop: function(event, ui){ 
     if($(".correct").length == $(".drop").length){ 
      setTimeout(function(){ 
       $('#win').text(winner+' '+'stars'+' '+'earned'); 
      },500); 
      winner = 1; 
      clearInterval(timer); 
      clicked = true; 
     } 
    } 
    }); 

    $("#two").draggable({ 
    revert: "invalid", containment: "#wrapper", 
    start: function(event, ui){ 
     if(!done) return false; 
    }, 
    stop: function(event, ui){ 
     if($(".correct").length == $(".drop2").length){ 
      setTimeout(function(){ 
        $('#win1').text(winners+' '+'stars'+' '+'earned'); 
      },500); 
      winners = 2; 

      clearInterval(timer); 
      clicked = true; 

     } 
    } 
    }); 

//===============================================/CAR DRAGGABLE  End=================== 

//====================================================================Two    draggable========================== 

    if(counter > 59 && clicked){ 
    clicked = false; 
    timer = setInterval(function(){ 
    check(counter); 
    counter--; 
    },1000); 

} 


//=========================================/TWO DRAGGABLE END========================== 

}); 

//===================================================CAR DROPPABLE================================ 

$("#carDrop").droppable({ 
    accept: "#car", 
    drop: function(event, ui) { 
     if(ui.draggable.is("#car")){ 
      $(this).addClass("correct").find("p").html("correct!"); 
      done = false; 
      ui.draggable.fadeOut(500); 
      $(this).fadeOut(500,function(){ 
       done = true; 
      }); 
     } 
    } 
}); 

//==================================================two droppable=========================== 

$("#twoDrop").droppable({ 
    accept: "#two", 
    drop2: function(event, ui) { 
     if(ui.draggable.is("#two")){ 
      $(this).addClass("correct").find("p").html("correct!"); 
      done = false; 
      ui.draggable.fadeOut(500); 
      $(this).fadeOut(500,function(){ 
       done = true; 
      }); 
     } 
    } 
}); 
+0

У меня уже есть кнопка для запуска часов, что я хочу, после инструкции if, часы перезапускаются до 60 секунд, и я могу снова щелкнуть по ней. – user3079341

+0

Я добавил, что я предположим, что вам нужно. Пожалуйста, объясните, что вы пытаетесь сделать с этим скриптом. –

+0

У меня есть кнопка, которую я просто не включил сюда. Этот скрипт является перетаскиваемым и недоступным, и вам нужно запустить часы, чтобы их можно было перетащить то, что я хочу, после его удаления, если ($ (". correct"). length == $ (". drop"). length) {}, тогда я хочу, чтобы часы снова сбросили. Я попытался добавить счетчик = 60, и он работает, обратный отсчет вернулся к 60, но он автоматически не после того, как я нажму на него – user3079341

0

Как Лука сказал, что неясно, что вы просите, можно разработать больше о том, что вы хотите делать?

Из того, что я понимаю, вы просто хотите сбросить таймер, который будет переменной.

Если так, то это было бы так:

if(counter == 0) { 
    counter = 60; 
} 
+0

Что я хочу, это после инструкции if внутри stop: function (event, ui) {} Я хочу, чтобы таймер возвращался на 60 секунд, и он снова будет доступен для клика cuz моя проблема после инструкции if время просто останавливается, и если я нажимаю кнопку запуска, ничего не происходит – user3079341

+0

Ваш код помог ему перезапустить время, но я хочу, чтобы он перезапустился после повторного нажатия кнопки, а не автоматически – user3079341

0

Ниже вещи, которые я заметил.

  1. `javascript: toggle(); toggle не определен в «startClock». Либо определите его, либо удалите его
  2. Нет элемента с идентификатором «fail». Таким образом, ниже строки бросает ошибку

    $ ('# fail') [0] .play();

  3. Удалить условие if (!timer) и определить переменную «таймер» внутри события «startClock».

Применить вышеуказанные изменения и посмотреть, если это помогает

0
// setup timer, keep pointer to it in mytimer variable 

var mytimer = setTimeout(function(){ 
    alert('hello 2s have passed!'); 
},2000); 

// cancel timer 

clearTimeout(mytimer); 

Пожалуйста, обратите внимание, что его setInterval() имеет clearInterval().

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