2017-12-14 9 views
1

Ich versuche, das onclick-Ereignis zu verwenden, um einer veränderbaren Variablen (eine laufende Scorecard) eine ganze Zahl zuzuweisen.Beim Klicken, um einen Wert zuzuweisen

Die Idee ist, der Benutzer wird auf eine Schaltfläche klicken und je nach ihrer Wahl der Schaltfläche wird das Ereignis onclick die Variable runningTally mit einem Wert aktualisieren.

Mein Code fügt den Wert in die HTML-Seite ein, fügt aber automatisch die Summe aller möglichen Werte ein, nicht nur die Werte von onclick.

Ich habe versucht, den Code mehrfach umzuschreiben und war nicht erfolgreich. Könnte jemand Hilfe anbieten?

var one = document.getElementById('1'); 
var two = document.getElementById('2'); 
var btn = document.getElementById('showtally'); 

let runningTally = 0; 

function score(points) { 
    runningTally += points; 
    document.getElementById('showtally').innerHTML = runningTally; 
}; 

one.onclick = score(5); 
two.onclick = score(4); 
+0

zuordnen können Warum Sie usa mischen ge von var und im selben Umfang lassen? Wenn die Daten alle global sind, würde ich var für alles verwenden. Ich glaube nicht, dass Ihre onclick-Konfiguration korrekt ist, Sie tun es nicht so, Sie geben eine Funktion an, die aufgerufen werden soll, wenn das Ereignis ausgelöst wird, aber Sie können einen solchen Parameter nicht übergeben. Siehe https://www.w3schools.com/jsref/met_element_addeventlistener.asp – SPlatten

+0

Sie verpassen ein ')' hier: 'document.getElementById ('showtaly' .innerHTML = runningTally;' –

Antwort

0

Sie können die Ereignis-Listenern wie folgt befestigen:

let runningTally = 0; 
 

 
function score(points) { 
 
    runningTally += points; 
 
    document.getElementById('showtally').innerHTML = runningTally; 
 
};
<button id="1" onclick="score(5)">1</button> 
 
<button id="2" onclick="score(4)">2</button> 
 
<div id="showtally"></div>

0

Sie Funktionen anonym wie diese

var one = document.getElementById('1'); 
 
var two = document.getElementById('2'); 
 
var btn = document.getElementById ('showtally'); 
 

 
let runningTally = 0; 
 

 
function score(points) { 
 
    runningTally += points; 
 
    document.getElementById('showtally').innerHTML = runningTally; 
 
}; 
 

 
one.onclick = function(){score(5);}; 
 
two.onclick = function(){score(4);};
<button id="1">1</button> 
 
<button id="2">2</button> 
 
<label id="showtally">0</div>

Verwandte Themen