Avatar billede Slettet bruger
09. februar 2014 - 14:27 Der er 13 kommentarer og
1 løsning

If else statement virker ikke

Mit script virker ikke. Scriptet skulle meget gerne vise ovnforkert og gemme ovnrigtig når clicked er på mindre end 50.


Scriptet:
if (document.getElementById('clicked').value < 50) {
    document.getElementById('ovnforkert').show
    document.getElementById('ovnrigtig').hide
}else{
    document.getElementById('ovnrigtig').show
    document.getElementById('ovnforkert').hide
}
Avatar billede nicklasw Nybegynder
09. februar 2014 - 15:37 #1
der flere problemmer med din kode.
1: når man kalder funktioner i javascript skal man have paranteser med, selvom der ikke er nogle parameterer. det vil sige .show() og .hide()

2: Du mangler semikolon for hver linje, dvs.

Scriptet:
if (document.getElementById('clicked').value < 50) {
    document.getElementById('ovnforkert').show();
    document.getElementById('ovnrigtig').hide();
}else{
    document.getElementById('ovnrigtig').show();
    document.getElementById('ovnforkert').hide();
}

3: Der er ikke nogle funktioner der hedder show() og hide() i javascript for DOM elementer. Der er tilgængeld funktioner der hedder show() hide() hvis du bruger bibliotekket jquery. I det tilfælde skal du så skrive $("#ovnforkert").show() eller $("#ovnforkert").hide()
Avatar billede Slettet bruger
09. februar 2014 - 20:23 #2
Tak for det, hvis du kan skrive et svar får du pointene :)
Avatar billede nicklasw Nybegynder
09. februar 2014 - 23:23 #3
Det var så lidt ;)
Avatar billede nicklasw Nybegynder
09. februar 2014 - 23:23 #4
fik du løst dit problem egentlig?
Avatar billede Slettet bruger
10. februar 2014 - 17:17 #5
Nej, desværre
Avatar billede nicklasw Nybegynder
10. februar 2014 - 18:28 #6
beskriv problemet, så kan det være vi kan løse det ;)
Avatar billede nicklasw Nybegynder
10. februar 2014 - 18:28 #7
ellers har jeg ikke rigtig fortjent pointene
Avatar billede Slettet bruger
10. februar 2014 - 18:53 #8
Når clicked har en værdi af mere end 50 skal den vise ovnforkert som ser her sådan ud:

<div id="ovnforkert" style="cursor:pointer; opacity:0.5; position:absolute; left:19%; top:10px;">
<a>
<img src="http://www.idenyt.dk/Global/Denmark/Boligen/1110/nthh_ovn.jpg"
style="width:150px;
height:65px;
position:absolute;
top:440px;" />
<center>
<h3 style="font-family:monospace; position:absolute; top:489px; width:200px; left:-25px; color:red;">OVN 50 Keks</h3>
</center>
</a>
</div>


Eller skal den vise ovn rigtig som ser sådan her ud:

<div id="ovnrigtig" style="cursor:pointer; opacity:1; position:absolute; left:19%; top:10px;">
    <input style="cursor:default; position:absolute; top:415px; left:50px;" id="clickedovn" size="5" onfocus="this.blur();" value="0">
<a id="ovne" onclick="ovnKlik();">
<img src="http://www.idenyt.dk/Global/Denmark/Boligen/1110/nthh_ovn.jpg"
style="width:150px;
height:65px;
position:absolute;
top:440px;" />
    <div id="ovntekst">
<center>
<h3 id="ovntekst" style="font-family:monospace; position:absolute; top:489px; width:200px; left:-25px;">OVN 50 Keks</h3>
</center>
    </div>
Avatar billede nicklasw Nybegynder
11. februar 2014 - 13:18 #9
bruger du jQuery?
Avatar billede Slettet bruger
11. februar 2014 - 13:26 #10
Nej
Avatar billede Slettet bruger
11. februar 2014 - 13:39 #11
Men det kan jeg da komme til.
Avatar billede nicklasw Nybegynder
11. februar 2014 - 14:05 #12
hvis du skal lave meget javascript med mange DOM manipulationer vil jeg nok råde dig til det. Hvis det overstående problem er det eneste du skal løse, så synes jeg du skal holde dig til ren javascript (det også god øvelse (har arbejdede sammen med folk som kun kunne bruge jQuery -- ikke godt!). Men jeg brygger lige noget sammen til dig når jeg kommer hjem fra uni ;)
Avatar billede nicklasw Nybegynder
11. februar 2014 - 15:30 #13
det godt nok ikke synderligt kønt men det virker efter hensigten tror jeg nok.

<script>
  function ovnKlik(){
    document.getElementById("clickedovn").value++;
    if(document.getElementById("clickedovn").value > 50){
        document.getElementById("ovnforkert").removeAttribute("class", "hide");
        document.getElementById("ovnrigtig").setAttribute("class", "hide");
    }else{
        document.getElementById("ovnrigtig").removeAttribute("class", "hide");
        document.getElementById("ovnforkert").setAttribute("class", "hide");
    }
  }
</script>

<style>
  div.hide {
    display: none;
  }
</style>

<div id="ovnforkert" class="hide" style="cursor:pointer; opacity:0.5; position:absolute; left:19%; top:10px;">
  <a>
    <img src="http://www.idenyt.dk/Global/Denmark/Boligen/1110/nthh_ovn.jpg"
        style="width:150px;
                height:65px;
                position:absolute;
                top:440px;" />
    <center>
      <h3 style="font-family:monospace; position:absolute; top:489px; width:200px; left:-25px; color:red;">OVN 50 Keks</h3>
    </center>
  </a>
</div>


Eller skal den vise ovn rigtig som ser sådan her ud:

<div id="ovnrigtig" style="cursor:pointer; opacity:1; position:absolute; left:19%; top:10px;">
  <input style="cursor:default; position:absolute; top:415px; left:50px;" id="clickedovn" size="5" onfocus="this.blur();" value="0">
  <a id="ovne" onclick="ovnKlik();">
    <img src="http://www.idenyt.dk/Global/Denmark/Boligen/1110/nthh_ovn.jpg"
        style="width:150px;
                height:65px;
                position:absolute;
                top:440px;" />
    <div id="ovntekst">
      <center>
        <h3 id="ovntekst" style="font-family:monospace; position:absolute; top:489px; width:200px; left:-25px;">OVN 50 Keks</h3>
      </center>
    </div>
    </a>
</div>
Avatar billede Slettet bruger
11. februar 2014 - 21:58 #14
tak
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester