質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

1回答

1293閲覧

ai

warabimoti

総合スコア8

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2016/08/11 04:58

編集2022/01/12 10:55

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2016/08/11 07:43

どこまで問題なく機能して、何が機能しないのでしょうか。また、その際にエラーは出ますか?
kei344

2016/08/13 11:29

回答が付いた質問の編集は慎重に行ってください。タイプミス程度なら修正する事もありますが、本文を削除するのはやめましょう。
guest

回答1

0

※動作確認してないが、このような感じだと思われる。

JavaScript

1$(function() { 2 3var $list = $('.todoList'); 4var $input = $('.todoInput'); 5var storage = window.localStorage; 6 7/* 8 * Todoを追加する関数 9 */ 10function addTodo(text, isComplete) { 11 // リストアイテムをつくる 12 var $li = $('<li>'); 13 var $text = $('<span class="text">').text(text); 14 var $checkbox = $('<input type="checkbox">'); 15 var $remove = $('<span class="remove">削除</span>'); 16 $li.append($checkbox).append($text).append($remove); 17 18 // 完了済みの場合の処理 19 if (isComplete) { 20 $li.addClass('complete'); 21 $checkbox.attr('checked', true); 22 } 23 24 // チェックボックスをクリックしたときの処理 25 $checkbox.click(function() { 26 if ($(this).is(':checked')) { 27 $li.addClass('complete'); 28 } 29 else { 30 $li.removeClass('complete'); 31 } 32 updateStorage(); 33 }); 34 35 // 削除ボタンをクリックしたときの処理 36 $remove.click(function() { 37 if (window.confirm('削除してよろしいですか?')) { 38 $li.fadeOut(function() { 39 $li.remove(); 40 updateStorage(); 41 }); 42 } 43 }); 44 45 if(!duplicateCheck(text)){ 46 // リストに追加する 47 $list.append($li); 48 } 49 50} 51 52/* 53 * 重複チェック 54 */ 55function duplicateCheck(text) { 56 var duplicateFlag = false; 57 $list.children().each(function(i, elem) { 58 if($(elem).find(".text").text() === text){ 59 duplicateFlag = true; 60 return false; 61 } 62 }); 63 return duplicateFlag; 64} 65 66/* 67 * ストレージを更新する関数 68 */ 69function updateStorage() { 70 var list = []; 71 72 // 現在のリスト情報を全て取得する 73 $list.find('li').each(function() { 74 var $item = $(this); 75 76 // テキストと完了かどうかを保存する 77 list.push({ 78 text: $item.find('.text').text(), 79 complete: $item.hasClass('complete') 80 }); 81 }); 82 83 // 文字列にしてストレージに保存 84 storage['todo.list'] = JSON.stringify(list); 85} 86 87// フォームを送信したときの処理 88$('.todoForm').bind('submit', function(event) { 89 // フォームのデフォルトの動作を止める 90 event.preventDefault(); 91 92 // テキストボックスに入っている文字列を取得 93 var text = $input.val(); 94 95 // todoを追加 96 addTodo(text); 97 98 // テキストボックスを空にする 99 $input.val(''); 100 101 // ストレージの更新 102 updateStorage(); 103}); 104 105// 初期表示時にストレージからデータを復元する処理 106var storageList = storage['todo.list']; 107if (storageList) { 108 JSON.parse(storageList).forEach(function(item) { 109 addTodo(item.text, item.complete); 110 }); 111} 112 113});

投稿2016/08/11 09:05

kentei_syunrai

総合スコア946

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問