2016-05-24 15 views
0

Ich versuche, Antwort zu erhalten, wenn ich den Show Button drücke, aber ich kann es nicht zum Laufen bringen. Könnte mir jemand helfen zu verstehen, was ich falsch mache? Ich kann den ersten Teil zum Arbeiten bringen, wo ich eine zufällige Ganzzahl erzeuge. Aber der zweite Teil wird nicht ausgeführt (JSFiddle).Wie man Elemente erscheinen lässt, nur wenn die Schaltfläche in Javascript geklickt wird

<!DOCTYPE html> 
<html> 

<body> 
    <button class="button" onclick="disp()">Generate</button> 
    <button class="button" onclick="show_ans()">Show</button> 

    <script> 
     function disp() { 
      var i = Math.floor((Math.random() * 51) + 1); 
      var j = 2 * i; 
      document.getElementById("Goal").innerHTML = [i]; 

      function show_ans() { 
       document.getElementById("answer").innerHTML = [j]; 
      } 
     } 
    </script> 

    <p> Random Integer: 
     <span id="Goal"></span> 
    </p> 

    <p> Computed Answer: 
     <span id="answer"></span> 
    </p> 

</body> 

</html> 
+2

verschieben Ihre Funktion show_ans befindet sich außerhalb der Funktion disp und definiert j außerhalb beider Funktionen. – j08691

Antwort

1

show_ans existiert nur im Rahmen der disp Funktion, so etwas außerhalb dieses Bereichs (wie der Rest der Seite) nicht aufrufen kann.

Move it außerhalb dieser Funktion:

function disp() { 
    //... 
} 
function show_ans() { 
    //... 
} 

Natürlich, da show_ans auch auf j beruht, das auch müssen in einem Umfang vorhanden, wenn beide Funktionen zugreifen können:

var j; 
function disp() { 
    var i = Math.floor((Math.random() * 51) + 1); 
    j = 2 * i; 
    document.getElementById("Goal").innerHTML = [i]; 
} 
function show_ans() { 
    document.getElementById("answer").innerHTML = [j]; 
} 
+0

window.j = 2 * i; in der vierten Zeile hat es funktioniert. –

Verwandte Themen