-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript.js
52 lines (43 loc) · 1.88 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
document.addEventListener('DOMContentLoaded', () => {
const todoForm = document.getElementById('todo-form');
const todoList = document.getElementById('todo-list');
const newTaskInput = document.getElementById('new-task');
const taskDeadlineInput = document.getElementById('task-deadline');
todoForm.addEventListener('submit', (e) => {
e.preventDefault();
addTask(newTaskInput.value, taskDeadlineInput.value);
newTaskInput.value = '';
taskDeadlineInput.value = '';
});
function addTask(task, deadline) {
if (task.trim() === '' || deadline.trim() === '') return;
const listItem = document.createElement('li');
listItem.innerHTML = `<span>${task}</span><br><small>Deadline: ${deadline}</small>`;
listItem.dataset.deadline = deadline;
const controls = document.createElement('div');
controls.classList.add('task-controls');
const completeBtn = document.createElement('button');
completeBtn.textContent = 'Completed';
completeBtn.classList.add('complete-btn');
completeBtn.addEventListener('click', () => {
listItem.classList.toggle('completed');
});
const deleteBtn = document.createElement('button');
deleteBtn.textContent = 'X';
deleteBtn.classList.add('delete-btn');
deleteBtn.addEventListener('click', () => listItem.remove());
controls.appendChild(completeBtn);
controls.appendChild(deleteBtn);
listItem.appendChild(controls);
todoList.appendChild(listItem);
checkDeadline(listItem);
setInterval(() => checkDeadline(listItem), 1000);
}
function checkDeadline(listItem) {
const deadline = new Date(listItem.dataset.deadline);
const now = new Date();
if (now >= deadline) {
listItem.classList.add('expired');
}
}
});