【Javascript・DOM】少しでも実用的なモノを作る~WebTodoリスト~
【今回の紹介】
今回は、
たいした理由はなくて、
会社の先輩がJavascript・DOMを勉強をする過程でWebTodoリストとかを作成し、自分で使いながら改造していた
からです。笑
【WebToDo】
目的:DOMの勉強
・各ノード(要素ノード・テキストノード・属性ノード)へのアクセスの練習
・少しでも実用的なモノを作るため
【デザイン別】
1、Todo doing doneの三分割(<div>区切りか)
【機能別】
✔ 1、リストを動的に生成する機能
✔ 2、Todo doing done間を順番に移動する機能(逆は必要なし)
✔ 3、リストを削除する機能
✔ 4、選んでいるリストが明確になる機能
未 5、優先度をつける機能
未 6、日付をつける機能
未 7、・内容変更機能
✔ 8、カテゴリー内全削除
【機能実現方法】
✔1、リストを動的に生成する機能(function add_list())
→Javascriptで動的に要素を生成する。
1-1 テキストボックスのテキストを取得
1-2 li要素を生成する
1-3 生成したli要素に、以下の属性・テキストノードを追加する
・onDblClick ・onmoseover ・onmouseout ・テキスト
1-4 ul要素(todo)にli要素を追加する
✔2、Todo doing done間を順番に移動する機能(逆は必要なし)(function moveList(obj)
→移動したいリストをダブルクリックすることでカテゴリー間(todo・doing・done間)を
移動する
2-1クリックされたリストが今どのカテゴリーにいるかを把握する。
→クリック時に受け取るthisから親ノード(div)にアクセスして判定する
2-2選択しているリストのコピーを作成
2-3作成したコピーを移動先に追加
2-4コピー元を削除
✔3、リストを削除する処理(function moveList(obj))
→doneの位置でダブルクリックした場合に、削除とする
具体的には、2の機能を実現したfunctionに分岐処理を追加した
3-1 2の機能で選択したリストがdoneの位置にあると判断
3-2 removeメソッドで削除する
✔4、カーソルを当てるとリストの色が変化する処理(function defaultcolor function addcolor(obj))
→1の処理時に、カーソルを当てるとfunctionを呼ぶ処理を追加し、実現
4-1 カーソルのあたっているリスト(this)をパラメータとして取得
4-2 thisの色の情報を持っている属性(obj.style.color)にアクセスする
✔ 8、カテゴリー内全削除(function allDel_li()で実現)
→カテゴリー(todo・doing・done)をダブルクリックすると、配下のノードを削除とする
【ソース】