Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[HTML/JS] Zwiększanie licznika poprzez kliknięcie w div-a

Ostatnio zmodyfikowano 2013-05-31 07:51
Autor Wiadomość
Capitan
Temat założony przez niniejszego użytkownika
[HTML/JS] Zwiększanie licznika poprzez kliknięcie w div-a
» 2013-05-30 12:41:45
Chce zrobić, by po kliknięciu w dany div, zwiększyła się liczba x.
Zrobiłem tak:


<div id="um11" style="background:url(images/um11.jpg) ;" onclick="spec_plus()">
<p style="position:relative;top:13px;left:10px;" >
Spec. broni dystansowej <br>
<script type='text/javascript'>
                 x=0;
function spec_plus(){

x++;

}
document.write(x);
document.write("/");
        document.write(10);
</script>
</p>
  </div>

Nie działa. Proszę o pomoc :)
P-84325
SeaMonster131
» 2013-05-30 13:28:16
Działa ale ty wypisujesz zmienna tylko raz ;)
P-84329
Capitan
Temat założony przez niniejszego użytkownika
» 2013-05-30 13:47:16
<script type='text/javascript'>

function spec_plus(){

x++;
document.write(x);
document.write("/");
    document.write(10);
}
document.write(x);
document.write("/");
    document.write(10);
</script>

Dałem tak, ale wtedy po wciśnięciu otwiera się nowa pusta strona z powiększonym x.
Może jakieś nakierowanie ? :D
P-84331
xevuel
» 2013-05-30 14:04:00
document.write to "zło" (oczywiście, od wszystkiego są wyjątki): http://stackoverflow.com/questions/802854 /why-is-document-write-considered-a-bad-practice

<div id="foo">Click me!</div><div id="container">0</div>

var x = 0;
document.getElementById('foo').addEventListener("click", function(event){
++x;
document.getElementById('container').childNodes[0].nodeValue = x;
});
Tworzymy dwie warstwy: jedną do klikania, drugą do wyświetlania wyniku. Następnie dodajemy nasłuch na pierwszej na zdarzenie click, a gdy ono nastąpi, inkrementujemy zmienną x i podmieniamy zawartość pierwszego węzła warstwy wyświetlającej na tą właśnie zmienną. Oczywiście pasowałoby jeszcze sprawdzić, czy warstwa ta ma w ogóle jakiekolwiek węzły, ale to niech będzie takim zadaniem domowym ;)
P-84333
Capitan
Temat założony przez niniejszego użytkownika
» 2013-05-30 14:55:25
Czyli muszę sprawdzić, czy warstwa ma węzły, bo inaczej skrypt się nie ruszy ?
P-84343
xevuel
» 2013-05-30 16:27:16
Czemu sam nie sprawdzisz? Ruszy zawsze, może się najwyżej zatrzymać po wystąpieniu wyjątku. W tym kodzie, który przedstawiłem warstwa ma już jeden tekstowy węzeł, więc nie trzeba się o te wyjątki martwić.
P-84350
Capitan
Temat założony przez niniejszego użytkownika
» 2013-05-30 20:14:36
Sprawdziłem i nic się nie dzieje, 0 nie zmienia się na 1, po kliknięciu...
P-84396
SocrateZ
» 2013-05-30 23:59:22
Sory, ale może byś tak zadeklarował zmienną x?

var x = 0;
To nie PHP :)

To po pierwsze... a po drugie, to działa, ale o tym nie wiesz:


<div id="um11" style="background:url(images/um11.jpg) ;" onclick="spec_plus()">
<p style="position:relative;top:13px;left:10px;" >
Spec. broni dystansowej <br>
<script type='text/javascript'>
var x=0;
function spec_plus(){

x++;
document.write(x);
}

</script>
</p>
  </div>

Po prostu źle robisz to, co robisz.
Jak już coś robisz, rób to dobrze.

Namieszałem -.-
P-84422
« 1 » 2
  Strona 1 z 2 Następna strona