2016-12-21 4 views
2

Ich habe einen Schieber und ich möchte es machen, so dass auf eine Taste drücken -local und größer als und kleiner als mit Slider

Wenn eine Variable (Rangevalue) einen Wert von 1-50 hat, dann eine weitere Variable (chanceofdeath) einen Wert von 1.

Wenn eine Variable (Rangevalue) einen Wert von 51-100 hat, dann eine andere Variable (chanceofdeath) einen Wert von 2.

Dies ist, was ich habe: https://jsfiddle.net/kzyffz9v/2/

Obwohl es im Absatz NaN druckt . Ist es ein Problem mit localStorage, oder die Größer als und weniger als Aussagen? Bitte korrigieren Sie meinen Code.

+0

Sie haben noch 'chanceofdeath' in localstorage festgelegt, so dass, wenn Sie' localStorage.getItem' aufrufen, gibt es null. Dann rufen Sie parseInt (null) auf, was Ihnen NaN gibt, und Sie können chanceOfDeath einen Standardwert geben, um dieses Problem zu vermeiden. ParseInt (localStorage.getItem ("chanceofdeath")) || 0; ' –

Antwort

1

Verschieben Sie die Wertinitialisierung in die Funktion, anstatt sie im Inline-Ereignishandler zu verwenden.

Stellen Sie außerdem sicher, dass Sie die Variable im lokalen Speicher festlegen.

HTML

onchange="my2Function()"> 

JS

function my2Function(){ 

    var rangeValue = parseInt(this.value, 10); 

    if (rangeValue < 50 && x > 0){ 
     chanceofdeath +=1; 
    } 

Check Fiddle

bearbeiten

localStorage.setItem("chanceofdeath", 23); 
var chanceofdeath = parseInt(localStorage.getItem("chanceofdeath"), 10); 
var inputElement = document.querySelector('.range-input'); 
var submitElement = document.querySelector('.submit'); 
var x = 2; 

submitElement.addEventListener('click', function() { 
    document.getElementById('paragraph').innerHTML = chanceofdeath; 
    localStorage.setItem("chanceofdeath", chanceofdeath); 
}); 

inputElement.addEventListener('change', function() { 
    var rangeValue = parseInt(this.value, 10); 
    chanceofdeath = chanceofdeath || 0; 
    if (rangeValue < 50 && x > 0) { 
    chanceofdeath += 1; 
    } 
    if (rangeValue < 100 && x > 49) { 
    chanceofdeath += 2; 
    } 
}); 

Edited Fiddle

+0

Kannst du die Geige bearbeiten, um es mir zu zeigen? –

+0

@NathanChan. Überprüfen Sie den bearbeiteten Post. –

+0

Warum wird 24 oder 23 gedruckt, wenn Sie den Schieberegler ziehen? Ich möchte auch, dass es onclick aktiviert. –

Verwandte Themen