diff --git a/app.js b/app.js index ab737a60027..9d925108e14 100644 --- a/app.js +++ b/app.js @@ -1,46 +1,31 @@ -//Document is the DOM can be accessed in the console with document.window. -// Tree is from the top, html, body, p etc. +var taskInput=document.getElementById("new-task"); +var addButton=document.getElementsByTagName("button")[0]; +var incompleteTaskHolder=document.getElementById("incompleteTasks"); +var completedTasksHolder=document.getElementById("completed-tasks"); -//Problem: User interaction does not provide the correct results. -//Solution: Add interactivity so the user can manage daily tasks. -//Break things down into smaller steps and take each step at a time. - - -// Event handling, user interaction is what starts the code execution. - -var taskInput=document.getElementById("new-task");//Add a new task. -var addButton=document.getElementsByTagName("button")[0];//first button -var incompleteTaskHolder=document.getElementById("incompleteTasks");//ul of #incompleteTasks -var completedTasksHolder=document.getElementById("completed-tasks");//completed-tasks - - -//New task list item var createNewTaskElement=function(taskString){ - var listItem=document.createElement("li"); - - //input (checkbox) - var checkBox=document.createElement("input");//checkbx - //label - var label=document.createElement("label");//label - //input (text) - var editInput=document.createElement("input");//text - //button.edit - var editButton=document.createElement("button");//edit button - - //button.delete - var deleteButton=document.createElement("button");//delete button - var deleteButtonImg=document.createElement("img");//delete button image + + var checkBox=document.createElement("input"); + + var label=document.createElement("label"); + + var editInput=document.createElement("input"); + + var editButton=document.createElement("button"); + + var deleteButton=document.createElement("button"); + var deleteButtonImg=document.createElement("img"); label.innerText=taskString; label.className='task'; - //Each elements, needs appending + checkBox.type="checkbox"; editInput.type="text"; editInput.className="task"; - editButton.innerText="Edit"; //innerText encodes special characters, HTML does not. + editButton.innerText="Edit"; editButton.className="edit"; deleteButton.className="delete"; @@ -48,7 +33,7 @@ var createNewTaskElement=function(taskString){ deleteButton.appendChild(deleteButtonImg); - //and appending. + listItem.appendChild(checkBox); listItem.appendChild(label); listItem.appendChild(editInput); @@ -61,11 +46,10 @@ var createNewTaskElement=function(taskString){ var addTask=function(){ console.log("Add Task..."); - //Create a new list item with the text from the #new-task: if (!taskInput.value) return; var listItem=createNewTaskElement(taskInput.value); - //Append listItem to incompleteTaskHolder + incompleteTaskHolder.appendChild(listItem); bindTaskEvents(listItem, taskCompleted); @@ -73,7 +57,6 @@ var addTask=function(){ } -//Edit an existing task. var editTask=function(){ console.log("Edit Task..."); @@ -86,11 +69,7 @@ var editTask=function(){ var label=listItem.querySelector("label"); var editBtn=listItem.querySelector(".edit"); var containsClass=listItem.classList.contains("editMode"); - //If class of the parent is .editmode if(containsClass){ - - //switch to .editmode - //label becomes the inputs value. label.innerText=editInput.value; editBtn.innerText="Edit"; }else{ @@ -98,28 +77,26 @@ var editTask=function(){ editBtn.innerText="Save"; } - //toggle .editmode on the parent. listItem.classList.toggle("editMode"); }; -//Delete task. + var deleteTask=function(){ console.log("Delete Task..."); var listItem=this.parentNode; var ul=listItem.parentNode; - //Remove the parent list item from the ul. + ul.removeChild(listItem); } -//Mark task completed var taskCompleted=function(){ console.log("Complete Task..."); - //Append the task list item to the #completed-tasks + var listItem=this.parentNode; completedTasksHolder.appendChild(listItem); bindTaskEvents(listItem, taskIncomplete); @@ -129,9 +106,6 @@ var taskCompleted=function(){ var taskIncomplete=function(){ console.log("Incomplete Task..."); -//Mark task as incomplete. - //When the checkbox is unchecked - //Append the task list item to the #incompleteTasks. var listItem=this.parentNode; incompleteTaskHolder.appendChild(listItem); bindTaskEvents(listItem,taskCompleted); @@ -143,10 +117,9 @@ var ajaxRequest=function(){ console.log("AJAX Request"); } -//The glue to hold it all together. -//Set the click handler to the addTask function. + addButton.onclick=addTask; addButton.addEventListener("click",addTask); addButton.addEventListener("click",ajaxRequest); @@ -154,42 +127,22 @@ addButton.addEventListener("click",ajaxRequest); var bindTaskEvents=function(taskListItem,checkBoxEventHandler){ console.log("bind list item events"); -//select ListItems children + var checkBox=taskListItem.querySelector("input[type=checkbox]"); var editButton=taskListItem.querySelector("button.edit"); var deleteButton=taskListItem.querySelector("button.delete"); - - - //Bind editTask to edit button. + editButton.onclick=editTask; - //Bind deleteTask to delete button. deleteButton.onclick=deleteTask; - //Bind taskCompleted to checkBoxEventHandler. checkBox.onchange=checkBoxEventHandler; } -//cycle over incompleteTaskHolder ul list items -//for each list item for (var i=0; i -Todo App - - - + + + + + Todo App + + + -
Want more details?
-

-

Todo

-

Completed