Frage

Ich mache einen einfachen jQuery-Skript, das Ihnen etwas auf dem Klick auf eine Schaltfläche ändern kann. Mein Problem ist, dass, wenn ich den Wert ändern (markiert), und klicken Sie dann auf die Schaltfläche Senden, sie es als Standard erkennen. Wenn Sie diese auf dem Standard zu tun, wird es ausgeschaltet, so dass, wenn Sie es abhaken (einschalten) und dann auf die Schaltfläche Senden klicken, wird der Standard (off) Befehl sein. Ich weiß das, weil ich lokale Speicher verwenden, um die Einstellungen zu speichern. Also, wenn Sie es abhaken, aktualisieren, und klicken Sie dann auf einreichen, wird es die richtige Aktion tun.

Hier ist meine jQuery:

$(document).ready(function(){ 
var test='false'

if (localStorage.getItem('simpSet')){
element = document.getElementById('simplify');
var test=localStorage.getItem('simpSet');

if(test == 'true'){
element.setAttribute('checked');
}

console.log(test);
}

$('#simplify').live('click', function(){

if ($('#simplify').is(':checked')){
var test='true'
console.log(test);

}else{
var test='false'
console.log(test);
}
localStorage.setItem('simpSet', test);

});

$('#button').live('click', function(){
console.log(test);

if(test == 'true'){
console.log('isTrue');
$('#test').css('background', 'blue');
return false;
}else{
$('#test').fadeOut('slow');
return false;
}

});

});

und meine einfache Markup

<span id='simcont'>Simplify<input type='checkbox' id='simplify'></span>

<input type="submit" val='Go' id='button'>
<div id='test'>Testing simplifier</div>

Alle Ideen, was falsch ist?

Beispiel: http://kod.singaming.net/simplify/

Standardmäßig wird der Text abklingen, wenn Sie es überprüfen, sollte es den Text der Hintergrund blau. Dies gilt nicht richtig jedoch funktioniert so wird es nur fade, aber wenn man es abhaken, erfrischen und dann legt sie den Hintergrund blau.

War es hilfreich?

Lösung

Ich würde ändern

var test = 'true';

test = 'true';

in Ihrem Checkbox Veranstaltungsbereich. Die Variable ist nicht zugänglich außerhalb der Click-Ereignis-Funktion.

edit: Das gleiche gilt für deaktivieren. Entfernen Sie die 'var'

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top