-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript.js
88 lines (75 loc) · 2.28 KB
/
script.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
const form = document.getElementById("to-do-form");
const taskInput = document.getElementById("task-input");
const taskList = document.getElementById("task-list");
form.addEventListener("submit", addTask);
// Load any existing tasks from local storage
loadTasks();
function addTask(e) {
e.preventDefault();
if (taskInput.value === "") {
alert("Please add a task.");
return;
}
const li = document.createElement("li");
const task = document.createElement("span");
task.innerHTML = taskInput.value;
li.appendChild(task);
const taskControls = document.createElement("div");
taskControls.classList.add("task-controls");
const editBtn = document.createElement("button");
editBtn.innerHTML = "Edit";
editBtn.addEventListener("click", function(){editTask(task)});
taskControls.appendChild(editBtn);
const completeBtn = document.createElement("button");
completeBtn.innerHTML = "✓";
completeBtn.addEventListener("click", function(){
task.classList.toggle("completed");
saveTasks();
});
taskControls.appendChild(completeBtn);
const deleteBtn = document.createElement("button");
deleteBtn.innerHTML = "✕";
deleteBtn.addEventListener("click", function(){
li.remove();
saveTasks();
});
taskControls.appendChild(deleteBtn);
li.appendChild(taskControls);
taskList.appendChild(li);
taskInput.value = "";
saveTasks();
}
function editTask(task){
let taskText = task.innerHTML;
task.innerHTML = "";
let input = document.createElement("input");
input.value = taskText;
task.appendChild(input);
input.focus();
input.addEventListener("blur", function(){
task.innerHTML = this.value;
saveTasks();
});
}
function completeTask() {
task.classList.toggle("completed");
saveTasks();
}
function deleteTask() {
li.remove();
saveTasks();
}
function saveTasks() {
const tasks = [];
for (let task of taskList.children) {
tasks.push(task.firstChild.innerHTML);
}
localStorage.setItem("tasks", JSON.stringify(tasks));
}
function loadTasks() {
const tasks = JSON.parse(localStorage.getItem("tasks")) || [];
for (let task of tasks) {
taskInput.value = task;
addTask(new Event("submit"));
}
}