Dzień dobry (IMG:
style_emoticons/default/smile.gif)
Mam taki oto skrypt timera na stronie:
counter = new Array();
function loadTimer(czas,lokalizacjaTimera,idTimera){
var s = czas;
counter.idTimera = setInterval(timer, 1000); // ustawienie funkcji odpowiedajacej za cykliczne wywolanie(co 1 s) funkcji timer()
var min = s / 60; // minuty
var h = min / 60; // godziny
var sLeft = Math.floor(s % 60); // pozostało sekund
var minLeft = Math.floor(min % 60); // pozostało minut
var hLeft = Math.floor(h); // pozostało godzin
if (minLeft < 10)
minLeft = "0" + minLeft;
if (sLeft < 10)
sLeft = "0" + sLeft;
var out = hLeft + ":" + minLeft + ":" + sLeft; //tekst wyswietlony uzytkownikowi
document.getElementById(""+lokalizacjaTimera+"").innerHTML = out;
$("#"+lokalizacjaTimera+"").html(out); // przypisanie tekstu timera do odpowiedniego elementu html
function timer()
{
--s;
var min = s / 60; // minuty
var h = min / 60; // godziny
var sLeft = Math.floor(s % 60); // pozostało sekund
var minLeft = Math.floor(min % 60); // pozostało minut
var hLeft = Math.floor(h); // pozostało godzin
if (minLeft < 10)
minLeft = "0" + minLeft;
if (sLeft < 10)
sLeft = "0" + sLeft;
var out = hLeft + ":" + minLeft + ":" + sLeft; //tekst wyswietlony uzytkownikowi
$("#"+lokalizacjaTimera+"").html(out); // przypisanie tekstu timera do odpowiedniego elementu html
if( s <= 0) //licznik osiągnął 0
{
//licznik się wyzerował należy podjąć odpowiednią akcje
clearInterval(counter.idTimera); //zatrzymanie licznika
console.log("kasujemy timer id="+idTimera);
$.ajax({
type : "POST",
dataType : "json",
url : "up.php",
data : {
'idTimera':idTimera},
success: function(data) {
if (data.error)
{
alert("wystąpił błąd"+data.error);
}
else
{
alert("zadanie zakończone");
}
}
});
return;
}
}
}
A wywołuję go tak:
$(document).ready(function() {
loadTimer(<?php echo $wnetrzePracownika['time'];?>,'timer<?php echo $kolejnyNumer;?>',<?php echo $kolejnyNumer;?>);
});
I jeśli jeden Interwał jest uruchomiony to wszystko pięknie działa i interwał zostaje wyłączony, natomiast jeśli jest kilka uruchomionych to mimo wykonania zadania interwał nadal działa.
I tutaj moje pytanie, jak wyłączyć setInterval jeśli np. są 4 uruchomione?
Proszę o pomoc.
Ten post edytował miccom 5.12.2015, 10:51:48