Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Niezależne wywoływanie funkcji
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
pitu
Witam

Mam pewien problem. Posiadam funkcję, którą przekazuje do diva licznik, aktualizowany co 1 sekundę. Potrzebuję jednak użyć funkcji wiele razy i niestety nie wiem czemu tylko ostatnie jej wywołanie aktualizuje wynik na bieżąco, inne dopiero po odświeżeniu strony.

  1. var current="zakończona"
  2. var montharray=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec")
  3.  
  4. function countdown(yr,m,d,pole){
  5. theyear=yr;themonth=m;theday=d;tpole=pole;
  6. var today=new Date();
  7. var todayy=today.getYear();
  8. if(todayy < 1000){
  9. todayy+=1900;
  10. }
  11.  
  12. var todaym=today.getMonth();
  13. var todayd=today.getDate();
  14. var todayh=today.getHours();
  15. var todaymin=today.getMinutes();
  16. var todaysec=today.getSeconds();
  17. var todaystring=montharray[todaym]+" "+todayd+", "+todayy+" "+todayh+":"+todaymin+":"+todaysec;
  18. futurestring=montharray[m-1]+" "+d+", "+yr;
  19. dd=Date.parse(futurestring)-Date.parse(todaystring);
  20. dday=Math.floor(dd/(60*60*1000*24)*1);
  21. dhour=Math.floor((dd%(60*60*1000*24))/(60*60*1000)*1);
  22. dmin=Math.floor(((dd%(60*60*1000*24))%(60*60*1000))/(60*1000)*1);
  23. dsec=Math.floor((((dd%(60*60*1000*24))%(60*60*1000))%(60*1000))/1000*1);
  24. if(dday<=0&&dhour<=0&&dmin<=0&&dsec<=0){
  25.  
  26. document.getElementById(pole).innerHTML = current;
  27. return
  28. }
  29. else
  30. document.getElementById(pole).innerHTML = dday+ "d "+dhour+":"+dmin+":"+dsec;
  31.  
  32. setTimeout("countdown(theyear,themonth,theday,tpole)",1000);
  33. }
  34. countdown(2012,11,1,"time2"); //dopiero po odświeżeniu
  35. countdown(2012,12,1,"time1"); //aktualizuje na bieżąco
  36.  
  37.  


Co może być nie tak?
markonix
Kod
function countanddelete(del,sec,dom){
    if(dom) $(dom).text(sec+' sek');
    if(sec>0) setTimeout(function(){countanddelete(del,--sec,dom)},1e3);
    else { $(dom).text('Koniec'); $(del).fadeOut("slow",function() {$(del).remove()});  }
}


Funkcja służy do odliczania sekund dla wielu, różnych elementów DOM.
Po skończeniu czasu zmienia sekundy na "Koniec" i dodatkowo usuwa określony element (możesz to wywalić).

Dostosuj do swoich potrzeb.

Korzysta z Jquery.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.