我正在创建一个简单的jQuery脚本,允许您通过单击按钮来更改某些内容。我的问题是,如果我更改值(选中),然后单击提交按钮,它会将其识别为默认值。如果在默认情况下执行此操作,则将其设置为off,因此如果将其关闭(打开)然后单击“提交”按钮,则它将是默认(关闭)命令。我知道这是因为我使用本地存储来保存设置。因此,如果您将其关闭,刷新,然后单击“提交”,它将执行适当的操作。
这是我的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/
默认情况下,文本会消失,如果你检查它,它应该把文本的背景变成蓝色。这不起作用,所以它只会消失,但如果你检查它,刷新,然后提交它将把背景变成蓝色。
答案 0 :(得分:1)
我会改变
var test = 'true';
到
test = 'true';
在您的复选框事件区域中。在click事件函数之外无法访问该变量。
编辑:取消选中同样的事情。删除'var'