Die Funktion, welche die Summe berechnet und aktualisiert, sollten Sie separat definieren, also z.B.
function c() {
var summe =
SoSciSliders.getSlider("A115_01").value +
SoSciSliders.getSlider("A115_02").value +
SoSciSliders.getSlider("A115_03").value +
SoSciSliders.getSlider("A115_04").value +
SoSciSliders.getSlider("A115_05").value +
SoSciSliders.getSlider("A115_06").value;
// Display
var content = document.createTextNode(summe + " %");
displaysumme.appendChild(content );
}
Da fehlen noch ein paar Details, und vor der Aktualisierung muss auch der vorige Inhalt aus displaysumme
entfernt werden ... aber mir geht es um etwas anders. Nämlich, dass Sie diese Funktion dann für jeden Schieberegler registrieren können:
SoSciSliders.getSlider("A115_01").addEventListener("click", refreshsumme);
SoSciSliders.getSlider("A115_02").addEventListener("click", refreshsumme);
SoSciSliders.getSlider("A115_03").addEventListener("click", refreshsumme);
allerdings wird mir als Summe -54 (%) angezeigt
Die Methode .value()
gibt Ihnen den im Schieberegler gespeicherten Code zurück. Dieser liegt bei 1 bis (default) 101, wenn der Regler bedient wurde. Und er ist -9, wenn das nicht der Fall ist. Sechs Regler, die noch keinen Wert haben - das macht -54
.
Sie müssten beim Summieren also mit einer kleinen FOR-Schleife alle Schieberegler durchgehen - wenn der Wert >0
ist, dann wird der Wert-1
zur Gesamtsumme addiert, sonst nicht.