現在、単純な 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 をチェックする必要があります。
誰かが私を助けることができれば、私は感謝します!