Functie werkt niet naar behoren met subtraction...

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Richard Hansma

Richard Hansma

19/02/2014 15:56:25
Quote Anchor link
Beste PHP-ers,

Uit verveling ben ik begonnen met een JS dart-script te bouwen. Het is nog erg simpel en zal later misschien worden uitgebreid met PHP. Maar voor het zover is, moet ik eerst een oplossing vinden/krijgen voor mijn probleem.

Stel: Ik speel een 501 potje en ik gooi 110. Dan hoor ik 391 over te houden en dat is ook zo. Maar dan het vreemde, zodra ik dan 40+ gooi, geeft ie mijn error melding aan, dat het niet mogelijk is... Nu ben ik er dus achter dat het laatste getal niet wordt meegeteld... Want zodra ik op 31 sta bijvoorbeeld, kan ik niet hoger dan 3 gooien.

Hier het linkje naar mijn code: JS Bin

Hopelijk kunnen jullie me (op weg) helpen!
Gewijzigd op 19/02/2014 15:57:10 door Richard Hansma
 
PHP hulp

PHP hulp

21/09/2021 11:58:54
 
Erwin H

Erwin H

19/02/2014 17:18:33
Quote Anchor link
Plaats je code even hier. Op die JSBin krijg ik in elk geval niets te zien, dus wordt helpen ook onmogelijk.
 
Richard Hansma

Richard Hansma

19/02/2014 17:34:27
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
    var i = 0;
    function dartScore(value) {
        if (event.which == 13 || event.keyCode == 13) {
            var y = document.getElementById("output").innerHTML;
            var x = value;
            var z = y - x;
            if (x == 159 || x == 162 || x == 163 || x == 165 || x == 166 || x == 168 || x == 169 || x == 172 || x == 173 || x == 175 || x == 176 || x == 178 || x == 179 || x > 180 || y < x) {
                alert("Dit is niet mogelijk, vul het opnieuw in!");
            } else {
                i++;
                document.getElementById("output").innerHTML = z;
                if (z === 0) {
                    if (z < 0) {
                        z = 0;
                    }
                    if (i == 3) {
                        document.getElementById("output").innerHTML = "Speler 1 heeft gewonnen met een 9 darter!!!!!";
                    } else {
                        document.getElementById("output").innerHTML = "Speler 1 heeft gewonnen in " + i + " beurten!";
                    }
                }
            }
        }
    }

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
<input type="text" id="value" onkeyup="dartScore(this.value);">
<h1 id="output">501</h1>
 
- SanThe -

- SanThe -

19/02/2014 17:40:09
Quote Anchor link
Deze is wel leuk"

if (z === 0) {
if (z < 0) {

Als z nul is kan ie nooit ook nog kleiner dan nul zijn.
 
Richard Hansma

Richard Hansma

19/02/2014 17:48:02
Quote Anchor link
Domme fout...

Dat moet natuurlijk
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
if (z <= 0) {
zijn.

Maar dat lost helaas mijn probleem nog niet op...
 
Erwin H

Erwin H

19/02/2014 17:50:37
Quote Anchor link
Waar komt event vandaan op regel 3?
 
- SanThe -

- SanThe -

19/02/2014 17:59:51
Quote Anchor link
if (z <= 0) {

Ook dan zal z daar nooit kleiner dan nul zijn.
Beetje zinloos dus.
 
Richard Hansma

Richard Hansma

19/02/2014 18:10:56
Quote Anchor link
Erwin H op 19/02/2014 17:50:37:
Waar komt event vandaan op regel 3?

Ik nam aan dat ik dat gewoon kan gebruiken. Zodat de functie pas werkt wanneer ik op enter druk. Verder niet bij nagedacht omdat het ook werkt...
- SanThe - op 19/02/2014 17:59:51:
if (z <= 0) {

Ook dan zal z daar nooit kleiner dan nul zijn.
Beetje zinloos dus.

Ik heb het weggehaald, door de 'y < x' kan het niet minder dan 0 zijn.
 
Erwin H

Erwin H

19/02/2014 18:58:21
Quote Anchor link
Richard Hansma op 19/02/2014 18:10:56:
Erwin H op 19/02/2014 17:50:37:
Waar komt event vandaan op regel 3?

Ik nam aan dat ik dat gewoon kan gebruiken. Zodat de functie pas werkt wanneer ik op enter druk. Verder niet bij nagedacht omdat het ook werkt...

Bij mij in elk geval niet. FF begint te mekkeren dat event niet gedeclareerd is (en wat mij betreft klopt dat).
 
Richard Hansma

Richard Hansma

19/02/2014 19:11:11
Quote Anchor link
Oké, heb je misschien een oplossing zodat m'n script valid draait na een enter?

Edit: Overigens geeft JSlint aan dat 'event' globaal is.
Gewijzigd op 19/02/2014 19:13:30 door Richard Hansma
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

19/02/2014 20:23:33
Quote Anchor link
Niet op de manier zoals jij denkt.
Events zijn global maar niet het event op zich zelf.
Dus je zal op bepaalde elementen altijd een eventListener moeten zetten.
 
Richard Hansma

Richard Hansma

20/02/2014 07:57:26
Quote Anchor link
Hmm, klinkt lastiger dan ik dacht...

Iemand misschien een goede tutorial? Ik zat die van Jeffrey Way te kijken, alleen na de 1e les krijg ik helaas alleen maar 'page not found' bij de rest.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.