javascript - 单击按钮时变量未更新?

标签 javascript jquery html local-storage

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

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

编辑:取消选中也是同样的情况。删除“var”

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

相关文章:

javascript - 具有动态长度的正则表达式

javascript - 尝试结合使用 jQuery 的 window.open 函数和 for 循环来迭代数组时出现问题

JavaScript 循环内循环问题

javascript - 作为参数给出时返回 ID 元素

javascript - 将鼠标悬停在 td 上并添加一个类以跨越

javascript - 奇怪的 Javascript 代码显示错误的数字

javascript - 使用 PHP 和 ajax 传递带 URL 的变量不能正常工作

javascript - 从 HTML 上传(不是读取).xlsx 文件并将其(以任何方式)发送到 PHP 文件

javascript - 当我在 vanilla js 中选择 <select> 选项时如何更改 <a> href

html - 为 <div> 着色以覆盖具有 float 子元素的网页的整个宽度,<div>