Переменная не обновляется при нажатии кнопки?
-
27-09-2019 - |
Вопрос
Я делаю простой скрипт jQuery, который позволит вам что-то изменить одним нажатием кнопки.Моя проблема в том, что если я изменю значение (отмечено), а затем нажму кнопку «Отправить», оно распознает его как значение по умолчанию.Если вы сделаете это по умолчанию, она будет отключена, поэтому, если вы отметите ее (включите), а затем нажмете кнопку «Отправить», это будет команда по умолчанию (выключена).Я знаю это, потому что использую локальное хранилище для сохранения настроек.Поэтому, если вы отметите его, обновите, а затем нажмете «Отправить», он выполнит правильное действие.
Вот мой 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;
}
});
});
и моя простая разметка
<span id='simcont'>Simplify<input type='checkbox' id='simplify'></span>
<input type="submit" val='Go' id='button'>
<div id='test'>Testing simplifier</div>
Есть идеи, что не так?
Пример: http://kod.singaming.net/simplify/
По умолчанию текст исчезнет, если вы отметите его, фон текста ДОЛЖЕН стать синим.Однако это работает неправильно, поэтому оно просто исчезнет, но если вы отметите его, обновите и затем отправите, фон станет синим.
Решение
я бы поменял
var test = 'true';
к
test = 'true';
в области событий вашего флажка.Переменная недоступна за пределами функции события щелчка.
редактировать:То же самое касается и снятия отметки.Удалить «вар»