Κουμπιά για διαγραφή και ολοκλήρωση στην checklist σε JavaScript
Στο προηγούμενο μάθημα, μετά την επίλυση των ασκήσεων, θα έπρεπε να έχετε τον ακόλουθο κώδικα:
<input id="input">
<ul id="list"></ul>
let input = document.querySelector('#input');
let list = document.querySelector('#list');
input.addEventListener('keypress', function(event) {
if (event.key == 'Enter') {
let li = document.createElement('li');
li.textContent = this.value;
list.appendChild(li);
this.value = '';
}
});
Ας προσθέσουμε τώρα μικρά κουμπιά 'διαγραφή'
και 'ολοκλήρωση'. Θα υλοποιήσουμε αυτά τα κουμπιά
ως ετικέτες span. Επίσης, στην ετικέτα span
θα τοποθετήσουμε και το κείμενο της εργασίας:
input.addEventListener('keypress', function(event) {
if (event.key == 'Enter') {
let li = document.createElement('li');
let task = document.createElement('span');
task.textContent = this.value;
li.appendChild(task);
let remove = document.createElement('span');
remove.textContent = 'διαγραφή';
li.appendChild(remove);
let mark = document.createElement('span');
mark.textContent = 'ολοκλήρωση';
li.appendChild(mark);
list.appendChild(li);
this.value = '';
}
});
Ας προσθέσουμε επίσης CSS κλάσεις σε κάθε
μία από τις ετικέτες span, ώστε να μπορούμε
να τις προσπελάσουμε μέσω CSS και να εφαρμόσουμε την αισθητική που θέλουμε:
let input = document.querySelector('#input');
let list = document.querySelector('#list');
input.addEventListener('keypress', function(event) {
if (event.key == 'Enter') {
let li = document.createElement('li');
let task = document.createElement('span');
task.classList.add('task');
task.textContent = this.value;
li.appendChild(task);
let remove = document.createElement('span');
remove.classList.add('remove');
remove.textContent = 'διαγραφή';
li.appendChild(remove);
let mark = document.createElement('span');
mark.classList.add('mark');
mark.textContent = 'ολοκλήρωση';
li.appendChild(mark);
list.appendChild(li);
this.value = '';
}
});
Προσθέτουμε CSS στις κλάσεις που δημιουργήσαμε:
#list span {
margin-right: 5px;
}
#list .remove, #list .mark {
color: blue;
cursor: pointer;
}
#list .remove:hover, #list .mark:hover {
text-decoration: underline;
}