2010-08-10 10 views
1

Je crée un script jQuery simple qui vous permettra de changer quelque chose en cliquant sur un bouton. Mon problème est que si je change la valeur (cochée), puis clique sur le bouton soumettre, il la reconnaîtra par défaut. Si vous le faites sur la valeur par défaut, elle est désactivée, donc si vous l'activez (activez), puis cliquez sur le bouton d'envoi, ce sera la commande par défaut (désactivée). Je le sais parce que j'utilise le stockage local pour enregistrer les paramètres. Donc, si vous cochez la case, rafraîchir, puis cliquez sur soumettre, il fera l'action appropriée.La variable n'est pas mise à jour lors du clic du bouton?

Voici mon 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; 
} 

}); 

}); 

et mon balisage simple,

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

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

Toutes les idées ce qui ne va pas?

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

Par défaut, le texte disparaîtra, si vous le vérifier, il accourons le bleu de fond du texte. Cela ne fonctionne pas correctement, mais il disparaîtra, mais si vous le cochez, rafraîchissez et soumettez-le pour que l'arrière-plan devienne bleu.

Répondre

1

Je changerais

var test = 'true'; 

à

test = 'true'; 

dans votre zone d'événement case à cocher. La variable n'est pas accessible en dehors de la fonction d'événement click.

edit: La même chose vaut pour décocher. Retirez le 'var'

+0

Merci! C'est ce qu'il a fait. – MoDFoX