-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain2.js
40 lines (35 loc) · 938 Bytes
/
main2.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
let state = [
{
todo: "Dance",
striked: false
}
];
var render = state => {
return state.reduce((acc, todo, index) => {
const classString = todo.striked ? 'class = "striked"' : "";
return (
acc + `<li ${classString} data-index="${index}" > ${todo.title} </li>`
);
}, "");
};
var paint = () => {
var html = render(state);
document.getElementById("taskList").innerHTML = html;
};
document.getElementById("addButton").addEventListener("click", e => {
const inputText = document.getElementById("taskInput").value;
state.push({
title: inputText,
striked: false
});
paint();
});
document.getElementById("taskList").addEventListener("click", e => {
const index = e.target.dataset.index;
state[index].striked = !state[index].striked;
paint();
});
document.getElementById("deleteButton").addEventListener("click", e => {
state = state.filter(band => !band.striked);
paint();
});