0

現在、単純な todo リストに取り組んでいます。タスクを Cookie に保存し、Web ページがリロードされると、以前のタスクを 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} が、これは機能しません。チェックボックスを押すと「チェック済みのトド」になるクラス = 「トド」の div をチェックする必要があります。

誰かが私を助けることができれば、私は感謝します!

4

1 に答える 1

0

チェックボックスがオンになっているかどうかを確認したい場合は、次を試してください。

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

ページをリロードせずに Cookie を取得したい場合は、Cookie の設定と取得の間に setTimeout を設定できます

于 2012-09-30T12:08:38.300 に答える