Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][jquery] Sprawdzene czy licznik chodzi
Forum PHP.pl > Forum > Przedszkole
arzach
Witam napisałem taki kod
[JAVASCRIPT] pobierz, plaintext
  1. <html>
  2. <head>
  3. <title>jquery</title>
  4. <script type="text/javascript" src="jquery.js"></script>
  5. <script type="text/javascript">
  6. $(document).ready(function(){
  7. $("#start").click(function(){
  8. var intervalHandler=setInterval(stoper,1000);
  9. });
  10.  
  11. $("#stop").click(function(){
  12. clearInterval(intervalHandler);
  13. });
  14.  
  15. if(intervalHandler){
  16. $("#wynik").html('Licznik działa');
  17. } else {
  18. $("#wynik").html('Licznik nie działa');
  19. }
  20. });
  21.  
  22. var ile=0;
  23. function stoper()
  24. {
  25. minut =Math.floor(ile/60)%90;
  26. sekund =ile%60;
  27. $("#stoper").html(minut+' minuta '+sekund+' sekund');
  28. ile++;
  29. }
  30. </script>
  31. </head>
  32. <body>
  33. <a href='#' id='start'>START</a> <a href='#' id='stop'>STOP</a>
  34. <div id='stoper'>0 minuta 0 sekund</div>
  35. <div id='wynik'></div>
  36. </body>
  37. </html>
[JAVASCRIPT] pobierz, plaintext



I stoper ładnie działa ale jak kliknę 2 razy na start to liczniki chodzi 2 razy szybciej proszę o pomoc jak to poprawić.


Oraz nie mam pojęcia czemu jak kliknę na STOP to licznik się nie zatrzymuje a powinien


I drugie pytanie jak sprawdzić czy licznik chodzi ? chodzi mi o ten kod

[JAVASCRIPT] pobierz, plaintext
  1. if(intervalHandler){
  2. $("#wynik").html('Licznik działa');
  3. } else {
  4. $("#wynik").html('Licznik nie działa');
  5. }
[JAVASCRIPT] pobierz, plaintext


Potrzebne mi to bo zmienną ile chce wysłać za pomocą ajax gdy kliknę w link dodaj to pliku ale wtedy kiedy licznik działa jak nie to wstawić wartość 0
Vhaeraun
Co do pierwszego pytania, to bym to zrobił tak, że kliknięcie w "start" ustala wartość jakiejś jakiejś zmiennej na true.
I jeśli ta zmienna ma wartość true, to wtedy uruchom stoper (niech funkcja stoper sprawdza na początku, jaka jest wartość tej zmiennej). Kolejne kliknięcie nic nie zmieni, bo przecież zmienna nie zmieni wartości, więc powinno działać.
Tak samo po naciśnięciu "stop", niech wartość zmiennej zmienia się na false.
johny_s
ad. 1
zdefiniuj sobie intervalHandler wtedy bedzie zmienna globalna i stop zadziala.
dodaj blokowanie przycisku start to Ci licznik nie bedzie przyspieszal (nie bedzie odpalania rownoleglej petli)

ad. 2
kod jest ok tylko ze jest wywolywany tylko raz przy starcie skryptu wrzuc sobie do jakiejs petli lub odpalaj jakim timerem
arzach
Dziękuje zrobiłem tak i działa ale dalej licznik chodzi szybciej jak kliknę 2 raz i nie wiem jak to zrobić by zablokować ? proszę o pomoc.
[JAVASCRIPT] pobierz, plaintext
  1. <html>
  2. <head>
  3. <title>jquery</title>
  4. <script type="text/javascript" src="jquery.js"></script>
  5. <script type="text/javascript">
  6. $(document).ready(function(){
  7.  
  8. var interval;
  9. function startInterval(){
  10. interval = setInterval(stoper,1000);
  11. }
  12.  
  13. $("#stop").click(function(){
  14. clearInterval(interval);
  15. });
  16.  
  17. $("#start").click(function(){
  18. startInterval();
  19. });
  20.  
  21. });
  22.  
  23. var ile=0;
  24.  
  25. function stoper()
  26. {
  27. minut =Math.floor(ile/60)%130;
  28. sekund =ile%60;
  29. $("#stoper").html(minut+' minuta '+sekund+' sekund');
  30. ile++;
  31. }
  32.  
  33.  
  34. </script>
  35.  
  36.  
  37.  
  38. </head>
  39. <body>
  40.  
  41. <a href='#' id='start'>START</a> <a href='#' id='stop'>STOP</a> <a href='#' id='dodaj'>DODAJ</a>
  42. <div id='stoper'>0 minuta 0 sekund</div>
  43.  
  44.  
  45. </body>
  46. </html>
[JAVASCRIPT] pobierz, plaintext
johny_s
  1. <script type="text/javascript">
  2. $(document).ready(function(){
  3.  
  4. var interval;
  5. var isCounter = false;
  6. function startInterval(){
  7. if(!isCounter) {
  8. interval = setInterval(stoper,1000);
  9. isCounter = true;
  10. }
  11. }
  12.  
  13. $("#stop").click(function(){
  14. clearInterval(interval);
  15. isCounter = false;
  16. });
  17.  
  18. $("#start").click(function(){
  19. startInterval();
  20. });
  21.  
  22. });
  23.  
  24. var ile=0;
  25.  
  26. function stoper()
  27. {
  28. minut =Math.floor(ile/60)%130;
  29. sekund =ile%60;
  30. $("#stoper").html(minut+' minuta '+sekund+' sekund');
  31. ile++;
  32. }
  33.  
  34.  
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.