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 :) |
|
SeaMonster131 |
» 2013-05-30 13:28:16 Działa ale ty wypisujesz zmienna tylko raz ;) |
|
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 |
|
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 ;) |
|
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 ? |
|
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ć. |
|
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... |
|
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 -.- |
|
« 1 » 2 |