Сидел вот читал учебник, читал читал, вроде как более менее разбирался о чем читаю, и вот дочитался, встала задача сделать выделение пунктов списка:
learn.javascript.ru/task/selectable-list
Попробовал решить. Просто выделение одного пункта сделал. Выделение с ctrl/meta сделал. А вот с shift вообще понять не мог. Думал посмотрю в решение. Думал что станет понятно. Но ничего не прояснилось, и теперь даже с решением ничего понять не могу. Голова уже кругом идет. Капец трудно все дается, как бы я ни старался, вообще уже кажется что не мое это.
В общем помогите разобраться в решении. Хочется понять как решено, а то уже бросить все хочется из за непонимания почти всего.
Там в задаче есть решение, но вот на всякий случай функция выбора с шифтом
function selectFromLast(target) {
var startElem = lastClickedLi || ul.children[0];
var isLastClickedBefore = startElem.compareDocumentPosition(target) & 4;
if (isLastClickedBefore) {
for (var elem = startElem; elem != target; elem = elem.nextElementSibling) {
elem.classList.add('selected');
}
} else {
for (var elem = startElem; elem != target; elem = elem.previousElementSibling) {
elem.classList.add('selected');
}
}
elem.classList.add('selected');
}