我正在制作一个简单的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';


在您的复选框事件区域中。在click event函数之外无法访问该变量。

编辑:同样的事情去取消。删除“ var”

关于javascript - 单击按钮后变量未更新?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3445097/

10-16 19:25