保持单元格颜色更改时刷新复选框

时间:2014-09-09 07:54:41

标签: javascript checkbox colors

我有单元格在复选框检查时更改背景颜色,我找出了如何在刷新时检查复选框(虽然回头看,我认为不再有效),但我不知道如何保持颜色变化在刷新。我根本不了解Javascript,这完全来自其他问题,但我希望它可以工作。如果我做了一些完全错误的事情,请纠正我,不要以为我是故意这样做的,因为我完全不知道我在做什么。

$(document).ready(function() {
$(".colourswitcher").click(function() {
    if($(this).is(":checked")) {
        $(this).closest("td").css("background","#ff3333");  
    }else {
        $(this).closest("td").css("background","#202020");
    } 
});
});

$(function(){
var test = localStorage.input === 'true'? true: false;
$('input').prop('checked', test || false);
});

$('input').on('change', function() {
localStorage.input = $(this).is(':checked');
console.log($(this).is(':checked'));
});

2 个答案:

答案 0 :(得分:0)

由于你是javascript的新手,我会问一个愚蠢的问题:你是否包含了jQuery?

你已经提取的这段代码使用了jQuery,这是一个非常有用的库(不是内置于javascript),它已经变得如此普遍,以至于人们在询问或回答涉及它的问题时通常甚至都没有说出它的名字。 。但是只要你看到$符号,你就可能正在处理jQuery。

您需要在html文件中包含库文件,以便它知道这些特殊符号和语法是什么:     <script src="http://code.jquery.com/jquery-2.1.1.min.js"></script>

如果您在Google Chrome中测试这些内容,请按F12并查看开发者控制台。当你遗漏这样的事情时,你会看到红色的“未定义”错误。

答案 1 :(得分:0)

这是另一个答案,假设你的工作知识比我的第一个答案更好:

代码的第一位在加载html文档时运行,并附加一个事件监听器,以便在单击复选框时相应地更改最近的单元格背景颜色。请注意这里有两件事。 1)该行为将附加到所有带有“colourswitcher”类的html元素,而不仅仅是输入。 2)该行为假定点击的内容具有“已选中”属性,只有一个复选框。

我假设的中间位应该在首次加载页面时运行一次,以从localStorage获取复选框的保存状态。该位可以移入文档就绪位。

代码的第三位将事件监听器附加到每个输入元素(不仅仅是复选框),这样每次单击一个时,检查的true / false状态将保存在localStorage中。

localStorage是一种在浏览器刷新之间保存信息的便捷方式。你可以保存任何你想要的东西,即。 localStorage.CandyCanes = 7,该变量将存储在用户的浏览器中,以后可以调用。请注意,如果只有一个复选框,上面的代码将只能按预期工作,因为您在localStorage中使用一个插槽或一个变量来保存:localStorage.input。

这就是我现在要详细阐述的内容。如果这比你预期的要多,那么是时候蹲下来学习,或者让专业人士参与其中。