• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Błąd w liczniku JavaScript

Object Storage Arubacloud
0 głosów
139 wizyt
pytanie zadane 8 lutego 2018 w JavaScript przez urbix01 Gaduła (3,290 p.)
     var numerD = 1;         //globalne zmienne ich wartości są zmieniane w funkcjach
     var back = numerD;
     var next = numerD;

     window.onload = podmianaDiva;

     function podmianaDiva()
       {
         alert(numerD);                                                                     //sprawdzenie zmiennej numerD
         var numerDiva = '<div id="div' + numerD + '"></div>';
         document.getElementById("content").innerHTML = numerDiva;
         if (numerD = 1) witaj();                                                           //wywołanie slidera (nie istotne)
         var buttonB = document.getElementById("arrow1"); 
//po kliknięciu w przycisk wywołanie funkcji
         buttonB.onclick = zmianaBack;
         var buttonN = document.getElementById("arrow2");
         buttonN.onclick = zmianaNext;

     }

     function zmianaBack()
     {
         back--;                    // odjęcie 1 od wartości numerD
         if (back <= 0) back = 5;   // jeżeli wartość jest za mała zacznij od końca
         numerD = back;             // zmienienie wartości numerD
         podmianaDiva();            //wywołanie funkcji startowej 
     }

     function zmianaNext() 
     {
         next++;                   //analogicznie jak wyżej
         if (next >= 6) next = 1;
         numerD = next;
         podmianaDiva();
     }

 

Witam tak wygląda fragment kodu źródłowego który napisałem (dalsza część to slider ale on działa dobrze) problem jest w tym że jak na przykład naciskam prawy przycisk (id="arrow1" zmianaNext)  to wartość zmienia się o +1 a gdy naciskam już lewy to wartość zamiast zmienić się o -1 czyli wrócić do początkowej zmienia się na losową (np 5,4,3) nigdy na tą co powinna analogicznie jest kiedy najpierw nacisnę lewy przycisk a później prawy. Ktoś widzi błąd, lub wie jak to naprawić? Pomocy, pierwszy raz pisze w js

2 odpowiedzi

0 głosów
odpowiedź 8 lutego 2018 przez k.wichura Pasjonat (19,870 p.)
wybrane 8 lutego 2018 przez urbix01
 
Najlepsza
Okropnie czyta się twój kod. Bezsensowne nazwy zmiennych i id. Rozumiem, że chodzi ci o zwiększanie i zmniejszanie tej zmiennej numerD. Raz nazywasz coś po polsku raz po angielsku. Bardzo ciężko zrozumieć co ten kod ma robić. Jeszcze ten okropny blok na kod wszystko zamazuje. Zerknij na mała podpowiedź na dole:

https://jsfiddle.net/q2m5z2cp/2/

Więc teraz wystarczy napisać funkcję podmień diva i wywoływać.

I podpowiedź na przyszłość: Używaj nawiasów klamrowych, ZAWSZE. Deklaruj zmienne na początku funkcji.
+1 głos
odpowiedź 8 lutego 2018 przez zgrybus Pasjonat (24,860 p.)
if (numerD = 1)
to na pewno jest źle : - )
komentarz 8 lutego 2018 przez urbix01 Gaduła (3,290 p.)
usunąłem ten fragment kodu, nadal alert(numerD) zwraca złe liczby
komentarz 8 lutego 2018 przez zgrybus Pasjonat (24,860 p.)
dzieje się tak, ponieważ zmienne back i next nie mają nic ze sobą wspólnego. Strzelam, że jak dwa razy naciśniesz next to wyskoczy Ci 3 i gdy naciśniesz back to wyskoczy Ci 5 :)

Podobne pytania

0 głosów
1 odpowiedź 221 wizyt
pytanie zadane 14 sierpnia 2017 w JavaScript przez besest Użytkownik (530 p.)
0 głosów
1 odpowiedź 1,256 wizyt
pytanie zadane 11 sierpnia 2017 w JavaScript przez besest Użytkownik (530 p.)
0 głosów
2 odpowiedzi 257 wizyt
pytanie zadane 9 października 2018 w JavaScript przez markiewiczg Nowicjusz (170 p.)

92,583 zapytań

141,434 odpowiedzi

319,669 komentarzy

61,966 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...