Avatar billede RasmusTheR Seniormester
08. november 2014 - 17:26 Der er 8 kommentarer og
1 løsning

Hjælp til at sætte variabel

Jeg har lavet et script der virker som det skal, på nær en ting.
Jeg prøver at sætte en variabel i en if-sætning men den er bare tom.

Det er linjen: var Opg1Svar = 100;
Hvis jeg flytter den ud af if-sætningen virker den..

Hvad gør jeg forkert?

if($.OpgTaeller == 1) {
        $("div#block_regnestykke_start").hide();
        $("div#block_regnestykke_vis").show();
        block_nr1_knap.src = '_pic/knap_opg-nr_1_groen.png';
        block_nr2_knap.src = '_pic/knap_opg-nr_2_graa.png';
        block_nr3_knap.src = '_pic/knap_opg-nr_3_graa.png'
        block_nr4_knap.src = '_pic/knap_opg-nr_4_graa.png';
        block_nr5_knap.src = '_pic/knap_opg-nr_5_graa.png';
        $("#vis_tal1").text(Opg1Tal1);
        $("#vis_tal2").text(Opg1Tal2);
        $("#vis_svar").val(Opg1Facit);
        //var Opg1Svar = document.getElementById('vis_svar').value;
        var Opg1Svar = 100;
    }
Avatar billede Slater Ekspert
08. november 2014 - 17:36 #1
Enten bliver den if-sætning ikke udført (er du helt sikker på det?), eller også er noget andet galt end vi kan se her.

Prøv evt. at lave en alert("test") lige før du sætter variablen, bare for at se om det bliver udført.
Avatar billede RasmusTheR Seniormester
08. november 2014 - 18:13 #2
alert("test") kører, så if sætningen virket.
Hvis jeg flytter "var Opg1Svar = 100;" udenfor if, sætter den variablen som den skal :-/

Kan det skyldes at jeg kombinere jQuery og javascript kommandoer?
Avatar billede Slater Ekspert
08. november 2014 - 18:21 #3
Nej, det kan det ikke.

if($.OpgTaeller == 1) {
  alert("if bliver kørt");
  var Opg1Svar = 100;
}
alert(Opg1Svar);

- Hvis ovenstående kører første alert men ikke viser 100 i nummer to, så er der altså noget helt galt. Det skal virke.
Avatar billede erikjacobsen Ekspert
08. november 2014 - 19:08 #4
Scoperegler:

var Opg1Svar;
if($.OpgTaeller == 1) {
  alert("if bliver kørt");
  Opg1Svar = 100;
}
alert(Opg1Svar);
Avatar billede erikjacobsen Ekspert
08. november 2014 - 19:12 #5
Jeg mente vel egentlig:

var Opg1Svar=0;
if($.OpgTaeller == 1) {
  alert("if bliver kørt");
  Opg1Svar = 100;
}
alert(Opg1Svar);

således at Opg1Svar er defineret og har en værdi, selv om man ikke kommer ind i if-en. Man ellers kan man naturligvis teste for undefined.

(og min "scoperegler" bemærkning ville give god mening hvis det skete i en funktion)
Avatar billede RasmusTheR Seniormester
08. november 2014 - 20:32 #6
Ahh..***  Jeg har min if-sætning til at ligge i en function, og det er når jeg prøver at hente variablen udenfor functionen at den jo er tom.

Hvordan hiver jeg en variabel ud af en function?


function NextOpg() {
    if($.OpgTaeller == 1) {
        //var Opg1Svar = document.getElementById('vis_svar').value;
        var Opg1Svar = 101;
    }
}

<input type="image" id="TestKnap" src="_pic/test.png"  onclick="NextOpg('');" / >
Avatar billede RasmusTheR Seniormester
08. november 2014 - 23:37 #7
Yes, fik det til at virke :-)

Vil I begge oprette et svar.
Avatar billede erikjacobsen Ekspert
09. november 2014 - 00:12 #8
Og det du fandt ud af, var at smide

  var Opg1Svar;

udenfor funktionen, evt med noget i retning af

  var Opg1Svar=0;

Og så fjerne "var" inde i funktionen.

Jeg samler slet ikke på point, tak.
Avatar billede RasmusTheR Seniormester
01. december 2014 - 21:17 #9
Lukker

Tusind tak for hjælpen :-)
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