Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [js][jQuery] Sprawdzanie kodu co 5 sekund, czy występuje dany warunek
Forum PHP.pl > Forum > Po stronie przeglądarki
qqwwq
Witam,

Napisałem sobie prosty warunek - $('#lightbox_content h1:contains("opis")').addClass('test1'); ... i niby wszystko było by ok, gdyby tylko nie to, iż sam div o id=lightbox_content, który może zawierać h1 z treścią opis, nie pokazuje się od razu po załadowaniu strony, a dopiero po kliku kliknięciach, nowym boxie który się pojawia, podejrzewam że taż jQuery czy ajaxem jest tam treść dodawana ... w związki z czym, czy jest jakaś możliwość żeby np. co jakiś czas jQuery sprawdzać czy dany warunek zaistniał, czyli coś o id=lightbox_content, a w nim h1 zawierający treść 'opis' ? I jeżeli warunek w końcu wystąpi, to wtedy podejmował jakąś akcję, czyli w tym wypadki dodawał klasę test1?


Pozdrawiam, i z góry dziękuję za wszelką pomoc smile.gif
mat-bi
setInterval
qqwwq
Super, działa ekstra ... a powiedz mi jeszcze, jak to wygląda z obciążeniem procka przez coś takiego? Oraz jaki najmniejszy czas mogę ustawić, aby komuś kto na Pentium II jeszcze rządzi, nie zamulało kompa wink.gif


edit/

Ok, zmajstrowałem taki kod, plus dodałem do niego licznik czasu:

  1. var godzina=document.getElementById('godzina');
  2.  
  3. function odliczanie(){
  4. n=new Date();
  5. s=0+Math.round((n.getTime()+z)/1000);
  6. m=0;
  7. h=0;
  8.  
  9. if(s<0){
  10. $('#godzina').html('---');
  11. document.location=document.location;
  12. }else{
  13. if(s>59){
  14. m=Math.floor(s/60);
  15. s=s-m*60
  16. }if(m>59){
  17. h=Math.floor(m/60);
  18. m=m-h*60
  19. }if(s<10){
  20. s="0"+s
  21. }if(m<10){
  22. m="0"+m
  23. }
  24.  
  25. $('#godzina').html(''+h+':'+m+':'+s+'');
  26. window.setTimeout("odliczanie();",999);
  27. }
  28. }
  29.  
  30. function stoper(){
  31. var petelka = setInterval(odliczanie,1000);
  32. }
  33.  
  34. function licznik() {
  35. $('#lightbox_content h1:contains("ataku")').parent().find('tr:eq(5)').find('td:eq(1)').attr('id', 'godzina');
  36. var czas = $('#godzina').html();
  37.  
  38. if(czas){
  39. var zegar = czas.substr(-8);
  40. string = new String(zegar);
  41. sekundy = string.substr(-2);
  42. minuty = string.substr(3,2);
  43. godziny = string.substr(0,2);
  44.  
  45. teraz = new Date();
  46. rok = teraz.getFullYear();
  47. miesiac = teraz.getMonth();
  48. dzien = teraz.getDate();
  49.  
  50. x = new Date(rok,miesiac,dzien,godziny,minuty,sekundy);
  51.  
  52. y = new Date();
  53. z = x.getTime()-y.getTime();
  54.  
  55. // n = new Date();
  56.  
  57. // ntime = n.getTime()/1000;
  58. // xtime = x.getTime()/1000;
  59.  
  60. // $('#godzina').html('data: '+x+' ntime: '+ntime+' xtime: '+xtime+'');
  61.  
  62. stoper();
  63. clearInterval(petla);
  64. }
  65. }
  66.  
  67. var petla = setInterval(licznik,1000);


I mam problem z funkcją odliczanie(), po krótce wyjaśnię co tam się znajduje. W zmiennej x mamy jakąś przyszłą datę, a raczej przyszłą godzinę, gdyż od tej obecnej będzie ona najprawdopodobniej odbiegać od kilku minut + sekundy, do max kilku godzin + minuty + sekundy, w zmiennej z jest różnica pomiędzy tą przyszłą godziną a obecną datą, czyli jest tam różnica tych kilku minut, czy kilku godzin, natomiast w zmiennej n mamy obecną datę. Wszystko z pomocą getTime() zamienia się na ilość sekund, po czym zmienne z i n chcę do siebie dodać, aby z powrotem otrzymać tą przyszłą godzinę ... wszystko było by ok, i to działa nawet prawie dobrze, tylko że tutaj jedynie sekundy i minuty się zgadzają, godziny mają jakąś kosmiczną kilku-cyfrową liczbę, nawet jak je podzielę przez 24, to i tak mi reszty nie zostaje tyle ile powinno być ...

Ogólnie co chcę zrobić, w zmiennej czas mam datę i godzinę, w zmiennej zegar mam samą godzinę ( tą przyszłą ), w formacie hh:mm:ss , no i chcę, aby tą zwykłą nieruchomą tekstową godzinę, zamieniło mi na licznik ... tzn, jak odświeżam stronę, to widzę że np. coś będzie trwało 15minut jeśli się kliknie przycisk, i widzę godzinę już obliczoną ( obecną + 15min - pewnie php'em ), ja bym chciał aby ten licznik leciał dalej, abym bez odświeżania strony widział, że po odczekaniu przeze mnie 3 minut, sam koniec czegoś tam co ma 15minut, też się przesunie na stronie o 15 minut ...

Może ja to robię od złej strony? Może tym getTime() w sekundach jest naokoło? No ale to był jedyny skrypt który liczy czas do przodu, a nie go odlicza do zera.
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.