-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.js
68 lines (61 loc) · 1.77 KB
/
app.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
// عناصر استفاده شده
const newItemInput = document.querySelector(".new-item > input");
const addItemBtn = document.querySelector(".new-item > button");
const itemsList = document.querySelector(".items");
// افزودن آیتم جدید
addItemBtn.addEventListener("click", () => {
const value = getValidValue(newItemInput);
if (value) {
const item = makeNewItem(itemsList, value);
itemsList.appendChild(item);
newItemInput.value = "";
}
});
// تعریف توابع
// متن آیتم
function setItemText(item, text) {
const span = item.querySelector("span");
span.textContent = text;
}
// قابلیت حذف آیتم
function setItemDelete(item) {
const delBtn = item.querySelector("button");
delBtn.addEventListener("click", () => {
item.remove();
});
}
// قابلیت تیک زدن آیتم
function setItemCheck(item, isChecked) {
const checkInput = item.querySelector("input");
checkInput.checked = isChecked;
updateItemClass(item, checkInput);
checkInput.addEventListener("change", () => {
updateItemClass(item, checkInput);
});
}
function updateItemClass(item, checkInput) {
if (checkInput.checked) {
item.classList.add("done");
} else {
item.classList.remove("done");
}
}
// ایجاد آیتم جدید
function makeNewItem(list, text, isChecked = false) {
const template = list.querySelector(".template");
const item = template.cloneNode(true);
item.classList.remove("template");
setItemText(item, text);
setItemDelete(item);
setItemCheck(item, isChecked);
return item;
}
// گرفتن مقدار صحیح از ورودی
function getValidValue(input) {
if (!input.value) {
alert("ابتدا باید چیزی بنویسید");
input.focus();
return null;
}
return input.value;
}