Pergunta

Estou criando um script jQuery simples que permitirá que você altere algo com o clique de um botão. Meu problema é que, se eu alterar o valor (verificado) e, em seguida, clique no botão Enviar, ele o reconhecerá como padrão. Se você fizer isso no padrão, ele estará definido como desligado; portanto, se você o marcar (ativar) e clique no botão Enviar, será o comando padrão (desligado). Eu sei disso porque uso o armazenamento local para salvar as configurações. Portanto, se você marcar, atualizar e clique em Enviar, ele fará a ação adequada.

Aqui está meu 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;
}

});

});

E minha marcação simples

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

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

Alguma idéia do que há de errado?

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

Por padrão, o texto desaparecerá, se você o verificar, ele deve girar o fundo do texto azul. Porém, isso não funciona corretamente, mas se você o marcará, atualize e envie e envie o fundo do fundo.

Foi útil?

Solução

eu mudaria

var test = 'true';

para

test = 'true';

na sua área de eventos de caixa de seleção. A variável não é acessível fora da função de evento de clique.

EDIT: O mesmo vale para desmarcar. Remova o 'var'

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top