Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] Problem z kodem liczącym
Forum PHP.pl > Forum > Przedszkole
thomson89
Witam!

Skoro mi nikt nie pomaga, to próbuję własnych sił. Stworzyłem sobie kodzik który wyświetla jakąś tam liczbę. Lecz:
- jak ustawiam w ifie na 5, to liczba wyświetla się 6 a potem przycisk znika
- jak ustawiam w ifie na 0, to liczba wyświetla się -1, a potem przycisk znika
- mimo że dałem style display display to i tak, przycisk, po zmienieniu wartości się nie pojawia
- tak samo z minusem - daję minus, a potem plus to przycsik minus się nie pojawia

Niestety nie wiem jak rozwiązać ten problem. Prosze o pomoc!

KOD:
Kod
<html>
<head>

</head>
<body>
<script type="text/javascript">
i=0;
function dalej(){
    if(i=='5'){
    document.getElementById('dalej').style.display = 'none';
    }
    if(i<'5'){
    document.getElementById('dalej').style.display = 'display';
    }
    

    i++;
    document.getElementById('liczba').innerHTML = i;
}

function wstecz(){
    if(i=='0'){
    document.getElementById('wstecz').style.display = 'none';
    }
    if(i!='0'){
    document.getElementById('wstecz').style.display = 'display';
    }

    i--;
    document.getElementById('liczba').innerHTML = i;
}

</script>
<p>Oto zmieniająca się liczba <b id='liczba'>0</b> </p>
<input type='button' id="wstecz" onclick='wstecz()' value='wstecz'/>
<input type='button' id="dalej" onclick='dalej()' value='dalej'/>

</body>
</html>
piotrooo89
ale co ty chcesz osiągnąć? bo ja nie wiem a przeczytałem chyba z 3 razy.
thomson89
Chcę osiągnąć dodawanie liczby według wskazań. Potrzebne jest mi to do galeri w js.
Pitter
Problem w tym, że w funkcji wstecz nie ustawiłeś, aby button dalej pojawił się gdy i<5 i odwrotnie w funkcji dalej nie ustawiłeś, aby button wstecz pojawiał się gdy naciśniejsz na dalej.
Button się nie pojawi jeżeli użyjesz display='display' nie ma czegoś takiego. Jest display = 'block';
thomson89
Czyli trzeba to zamienić? Button dalej display dać do wstecz i odwrotnie?

Dałem to do dalej:
Kod
if(i>'0'){
    document.getElementById('wstecz').style.display = 'display';
    }

A to do wstecz:
Kod
if(i<'5){
    document.getElementById('dalej').style.display = 'display';
    }


Ale nadal nie działa. sleep.gif
Pitter
Dobrze tylko tak jak pisałem. Nie ma czegoś takiego jak style.display = 'display' jest style.display = 'block'
thomson89
Jak dałem block, to to jest jak blokada przycisku... haha.gif nie da się kliknąć sleep.gif
Pitter
Pokaż kod jaki wygenerowałeś
thomson89
Kod
<html>
<head>

</head>
<body>
<script type="text/javascript">
i=0;
function dalej(){
    if(i=='5'){
    document.getElementById('dalej').style.display = 'none';
    }
    if(i>'0'){
    document.getElementById('wstecz').style.display = 'block';
    }
    

    i++;
    document.getElementById('liczba').innerHTML = i;
}

function wstecz(){
    if(i=='0'){
    document.getElementById('wstecz').style.display = 'none';
    }
    if(i<'5){
    document.getElementById('dalej').style.display = 'block';
    }

    i--;
    document.getElementById('liczba').innerHTML = i;
}

</script>
<p>Oto zmieniająca się liczba <b id='liczba'>0</b> </p>
<input type='button' id="wstecz" onclick='wstecz()' value='wstecz'/>
<input type='button' id="dalej" onclick='dalej()' value='dalej'/>

</body>
</html>


W IE widać że przycisk nie jest zablokowany, tylko skrypt po prostu się nie wykonuję. blinksmiley.gif

---EDIT---

Pomóżcie proszę. Ja tego nie umiem zrobić. Co ma źle?

Próbowałem też tak:
Kod
<html>
<head>

</head>
<body>
<script type="text/javascript">
function dalej(){
    i++;
    document.getElementById('liczba').innerHTML = i;
    return i;
}

function wstecz(){
    i--;
    document.getElementById('liczba').innerHTML = i;
            return i;
}

function zmien(dzialanie){

    i=0;    
    if(dzialanie == 'dalej'){
        i = dalej();
        if(i=='5'){
        document.getElementById('dalej').style.display = 'none';
        }
        if(i<'5'){
        document.getElementById('dalej').style.display = 'display';
        }
    }
    if(dzialanie == 'wstecz'){
        i = wstecz();
        if(i=='0'){
        document.getElementById('wstecz').style.display = 'none';
        }
        if(i!='0'){
        document.getElementById('wstecz').style.display = 'display';
        }
    }

}

</script>
<p>Oto zmieniająca się liczba <b id='liczba'>0</b> </p>
<input type='button' id="wstecz" onclick='zmien(wstecz)' value='wstecz'/>
<input type='button' id="dalej" onclick='zmien(dalej)' value='dalej'/>

</body>
</html>


Ale nie wychodzi...
piotrooo89
wykombinowałem coś takiego:

  1. <script type="text/javascript">
  2. var i = 0;
  3. function przod_tyl(gdzie)
  4. {
  5. if (gdzie=='p')
  6. {
  7. i++;
  8. document.getElementById('liczba').innerHTML = i;
  9. if (i >= 5)
  10. {
  11. document.getElementById('dalej').style.display = 'none';
  12. document.getElementById('wstecz').style.display = 'block';
  13. }
  14. else if (i < 5)
  15. {
  16. document.getElementById('dalej').style.display = 'block';
  17. document.getElementById('wstecz').style.display = 'block';
  18. }
  19. }
  20. else if (gdzie=='t')
  21. {
  22. i--;
  23. document.getElementById('liczba').innerHTML = i;
  24. if (i == 0)
  25. {
  26. document.getElementById('wstecz').style.display = 'none';
  27. document.getElementById('dalej').style.display = 'block';
  28. }
  29. else if (i >= 1)
  30. {
  31. document.getElementById('wstecz').style.display = 'block';
  32. document.getElementById('dalej').style.display = 'block';
  33. }
  34. }
  35. }
  36. <p>Oto zmieniająca się liczba <b id="liczba">0</b> </p>
  37. <input type="button" id="wstecz" onclick="przod_tyl('t')" style="display: none;" value="wstecz"/>
  38. <input type="button" id="dalej" onclick="przod_tyl('p')" value="dalej"/>
thomson89
Dziękuję. Widać że podobne do mojego smile.gif

PS: Znalazłem buga. Jak się zacznie klikać szybciej, to wtedy ominie się blokadę. Ale to nie problem bo to do galeri ma być.

--EDIT--

Jeszcze jedno. Przyciski wyświetlają mi się pod sobą. Jak można je zrobic obok siebie?

Mając kod liczacy tworzę sobie spokojnie galeryjkę, aż do napotkania kolejnego błędu. Mianowicie znowu problem z ifami. Nie wiem jak to rozwiązać. Jak daję na dalej, aż do ostatniego obrazka to potem mini obrazek znika. Ale jak daję wstecz, to się nie pojawia. Dopiero się pojawia jak daję pierwszy obrazek. Od razu piszę że to mój pierwszy kod js i bazuję tylko na kursach z internetu. Galeria do zobaczenia: mateuszkow.oz.pl/galeria/test.html.

CODE
<script type="text/javascript">
var i = 1;
var max = 4;
function przod_tyl(gdzie)
{

if (gdzie=='p')
{

i++;
a = i-1;
b = i+1;

document.getElementById('obrazek').src = i+'.jpg';
document.getElementById('pozycja').innerHTML = i+'/'+max;
document.getElementById('zdjecie1').src = a+'.jpg';
document.getElementById('zdjecie2').src = i+'.jpg';
document.getElementById('zdjecie3').src = b+'.jpg';

if (i >= max)
{
document.getElementById('dalej').style.display = 'none';
document.getElementById('wstecz').style.display = 'inline';
document.getElementById('zdjecie3').style.display = 'none';
}

else if (i < max)
{
document.getElementById('dalej').style.display = 'inline';
document.getElementById('wstecz').style.display = 'inline';
document.getElementById('zdjecie1').style.display = 'inline';
document.getElementById('zdjecie3').style.display = 'inline';
}

}

else if (gdzie=='t')
{

i--;
a = i-1;
b = i+1;

document.getElementById('obrazek').src = i+'.jpg';
document.getElementById('pozycja').innerHTML = i+'/'+max;
document.getElementById('zdjecie1').src = a+'.jpg';
document.getElementById('zdjecie2').src = i+'.jpg';
document.getElementById('zdjecie3').src = b+'.jpg';




if (i == 1)
{
document.getElementById('wstecz').style.display = 'none';
document.getElementById('dalej').style.display = 'inline';
document.getElementById('zdjecie1').style.display = 'none';
document.getElementById('zdjecie3').style.display = 'inline';
}

else if (i >= max)
{
document.getElementById('wstecz').style.display = 'inline';
document.getElementById('dalej').style.display = 'inline';
document.getElementById('zdjecie1').style.display = 'inline';
document.getElementById('zdjecie3').style.display = 'inline';
}

}

}
</script>
<center>
<img src="1.jpg" width="400" height="400" id="obrazek">
<table><tr><td width="70" align="center" bgcolor="silver">
<div id="wstecz" onclick="przod_tyl('t')" style="display: none;"><b> < Wstecz</b></div>
</td>
<td width="70" bgcolor="silver" align="center">
<b><div id="pozycja">1/4</div></b>
</td>

<td width="70" bgcolor="silver" align="center">
<div id="dalej" onclick="przod_tyl('p')" style="display: inline;"><b>Dalej ></b></div>
</td></tr>
<!-- miniatury -->
<tr>
<td height="100"><img id="zdjecie1" src="0.jpg" width="100" height="100" style="display: none;" /></td>
<td><img id="zdjecie2" src="1.jpg" width="100" height="100" /></td>
<td><img id="zdjecie3" src="2.jpg" width="100" height="100" style="display: inline;" /></td>
</table>
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.