0

我目前正在处理一个简单的待办事项列表。我将任务存储在 cookie 中,当网页重新加载时,我会从 cookie 中检索我以前的任务。但是我无法将我的任务保存为已完成,即我标记为完成的任务。

function toHTML(id, text) {

    return '<div class="todo" id="' + id + '">' +
        '<div id="' + cbid + '"><input type="checkbox" class="check_todo" name="check_todo"/></div>' +
        '<div class="todo_description" contentEditable = "true">' +
            text +
        '</div>' +
        '<img src = "sun-icon.gif" class="close" title = "Delete the Task" />' +
    '</div>';
}

当我按下复选框时,带有 class = "todo" 的 div 得到 class = "checked" 并且这个 div 内的文本 (todo_description) 变成了交叉,带有 class="todo" 的 div 本身也得到了另一种颜色。

$('#item-' + counter +' .check_todo').unbind('click');
    $('#item-' + counter +' .check_todo').click( function() {   
        var todo = $(this).parent().parent();
        todo.toggleClass('checked');

    });

当我重新加载页面时,我看到了我以前的任务但没有完成的任务,因为我只从 cookie 中检索文本:

 function get_cookies_array(){ 

        var cookies = { };
        if (document.cookie && document.cookie != '') {

            var split = document.cookie.split(';');
            for (var i = 0; i < split.length; i++) {
                var name_value = split[i].split("=");
                name_value[0] = name_value[0].replace(/^ /, '');
                cookies[decodeURIComponent(name_value[0])] = decodeURIComponent(name_value[1]);
            } 
        }
        return cookies;   
    }

//这里显示我的任务

var cookies = get_cookies_array();
        var i = 0;
        for(var name in cookies) {
            $('.todo_list').prepend(toHTML('item-' + (i++), cookies[name]));
             }

我试图检查类“已检查”, if $(cookies[name]).hasClass('checked') { make stylings for this div} 但这不起作用,我需要检查带有 class =“todo”的 div,当我按下复选框时它变成“todo checked”。

如果有人可以帮助我,我会很感激!

4

1 回答 1

0

如果你想检查复选框是否被选中,你可以尝试:

$('#id_checkbox').is(':checked'); 

如果您想在不重新加载页面的情况下获取 cookie,您可以在设置和获取 cookie 之间设置超时

于 2012-09-30T12:08:38.300 回答