-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.js
More file actions
61 lines (56 loc) · 1.87 KB
/
Copy pathapp.js
File metadata and controls
61 lines (56 loc) · 1.87 KB
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
const inputbox = document.querySelector("#inputbox"); //elem / null
const listbox = document.querySelector("#listbox"); //all tasks user enters
const add = document.querySelector(".button"); //node
let editTask = null; //apend li which needs to be edited
// const listbox = document.getElementById("listbox"); //elem / null
// const inputbox = document.getElementById("inputbox");
const addTask = () => {
if (inputbox.value === "") window.alert("Enter task and then add to list");
else if (editTask) {
editTask.firstChild.textContent = inputbox.value;
editTask.classList.add("updated");
editTask = null;
add.innerHTML = "Add";
} else {
//creating a new task
let li = document.createElement("li");
li.innerHTML = inputbox.value;
listbox.appendChild(li);
//adding edit button to it
let edit = document.createElement("button");
edit.innerHTML = "Edit";
edit.classList.add("edit");
li.appendChild(edit);
//adding close button to it
let close = document.createElement("span");
close.innerHTML = "\u00d7";
li.appendChild(close);
}
inputbox.value = "";
saveData();
};
//it was inline function previously
add.addEventListener("click", addTask);
listbox.addEventListener("click", (e) => {
if (e.target.tagName === "LI") {
e.target.classList.toggle("checked");
saveData();
} else if (e.target.tagName == "SPAN") {
e.target.parentElement.remove();
saveData();
} else if (e.target.tagName == "BUTTON") {
inputbox.value = e.target.parentElement.firstChild.textContent;
add.innerHTML = "Update";
editTask = e.target.parentElement;
editTask.classList.remove("updated");
// console.log(editTask);
}
});
const saveData = () => {
localStorage.setItem("data", listbox.innerHTML);
};
const showData = () => {
listbox.innerHTML = localStorage.getItem("data");
};
showData();
// localStorage.clear();