-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.js
More file actions
87 lines (79 loc) · 2.5 KB
/
main.js
File metadata and controls
87 lines (79 loc) · 2.5 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
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
//app
var toDoList = [];
list = document.getElementById('todo_list')
toggleButton = document.getElementById('toggle_list');
removeButtonSelect = document.getElementById('removeBtn');
textBox = document.createElement('input');
textBox.type = 'text';
list = document.querySelector('ul');
iconCreate = document.createElement('i');
iconCreate.className = 'material-icons';
iconCreate.textContent = 'close';
function addItem() {
addToUl = document.createElement('li');
createInput = document.createElement('input');
createInput.type = 'text';
createInput.placeholder = 'Add a to-do';
addToUl.appendChild(createInput);
list.appendChild(addToUl);
};
function removeItem() {
if(list.children[indexInputSelect.value - 1].children.length != 1) {
list.children[indexInputSelect.value - 1].remove();
} else {
alert('You have to select a to-do');
}
};
function iconListener() {
iconSelector = document.querySelectorAll('i');
iconSelector.forEach(function(e) {
e.addEventListener('click', function(){
e.parentElement.remove();
});
});
}
list.addEventListener('click', function(e) {
var element = e.target;
var callee = e.currentTarget;
if (element != callee && element.className === "" && element.textContent.length > 0) {
element.className = "done";
} else {
element.className = "";
}
})
toggleButton.onclick = function() {
if(list.childNodes.length > 3) {
if(list.className === '' && toggleButton.textContent === 'Mark All') {
list.className = 'done';
toggleButton.textContent = 'Unmark All';
} else {
list.className = '';
toggleButton.textContent = 'Mark All';
}
} else {
alert('You need at least 1 to-do');
}
}
list.addEventListener('dblclick', function(e) {
let element = e.target;
let callee = e.currentTarget;
let value = element.textContent;
if (element != callee) {
element.innerHTML = textBox.outerHTML
element.children[0].value = value.replace('close', '');
element.children[0].focus();
}
})
list.addEventListener('keypress', function(e) {
var element = e.target;
var key = e.which || e.keyCode;
if (key === 13) {
inputSelect = document.querySelectorAll('input').length
if(inputSelect == 1) {
addItem();
}
var contentLi = iconCreate.outerHTML + element.value;
element.parentElement.innerHTML = contentLi;
iconListener();
}
})