Непонятен фрагмент кода в строке 1. Надо реализовать подсветку ячейки при клике.
Вместо того, чтобы назначать обработчик для каждой ячейки, которых может быть очень много – мы повесим единый обработчик на элемент .
Он будет использовать event.target, чтобы получить элемент, на котором произошло событие, и подсветить его. Т.е я если не пойму почему если selectedTd) удалить класс highlight из свойства classList?
table.onclick = function(event) {
let target = event.target.closest('td')
if (target)
highlight(target)
}
var selectedTd;
function highlight(node) {
if (selectedTd) {
selectedTd.classList.remove('highlight'); // 1*
}
selectedTd = node;
selectedTd.classList.add('highlight');
}
table.onclick = function(event) {
let target = event.target.closest('td');
if (target){
highlight(target); // Не хочется неприятных сюрпризов - хорошо бы всегда ставить ; и {}
}
}
var selectedTd; // undefined
function highlight(node) {
if (selectedTd) {// пока undefined = вернет false и не выполнится.
selectedTd.classList.remove('highlight'); // 1*
}
selectedTd = node;
// Определили его = кликнутый (еще не подкрашенный) элемент; Он же let target = ...
selectedTd.classList.add('highlight'); // Покрасили;
}
На следующем клике selectedTd уже будет определен == предыдущий кликнутый и покрашенный элемент. Условие вернет true, краска уберется, потом уже переменная переопределится в новый кликнутый элемент и так по кругу.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Вроде как в коде ниже и всё должно быть просто, но тем не менее принцип работы не поддаётся моему пониманию
Есть простая таблица, нужно, чтобы при нажатии на поле, у него появлялась обвода и его можно было растянуть на другие поля (выше, ниже)
В таблице есть столбец с адресами формата: "город" + "улица и дом"Значения в таблицу попадают из json файла