Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript][jquery] Sprawdzene czy licznik chodzi, Sprawdzenie za pomocą if czy licznik chodzi
arzach
post 7.09.2011, 12:43:10
Post #1





Grupa: Zarejestrowani
Postów: 332
Pomógł: 6
Dołączył: 27.11.2008

Ostrzeżenie: (0%)
-----


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

Ten post edytował arzach 7.09.2011, 12:51:22
Go to the top of the page
+Quote Post
Vhaeraun
post 7.09.2011, 13:01:34
Post #2





Grupa: Zarejestrowani
Postów: 57
Pomógł: 6
Dołączył: 10.01.2011

Ostrzeżenie: (0%)
-----


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.


--------------------
Pomogłem ? Kliknij pomógł :)
Go to the top of the page
+Quote Post
johny_s
post 7.09.2011, 13:03:41
Post #3





Grupa: Zarejestrowani
Postów: 594
Pomógł: 122
Dołączył: 17.07.2005
Skąd: P-na

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
arzach
post 7.09.2011, 13:40:03
Post #4





Grupa: Zarejestrowani
Postów: 332
Pomógł: 6
Dołączył: 27.11.2008

Ostrzeżenie: (0%)
-----


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


Ten post edytował arzach 7.09.2011, 13:40:15
Go to the top of the page
+Quote Post
johny_s
post 7.09.2011, 14:02:33
Post #5





Grupa: Zarejestrowani
Postów: 594
Pomógł: 122
Dołączył: 17.07.2005
Skąd: P-na

Ostrzeżenie: (0%)
-----


  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.  
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 20.06.2025 - 13:42