ClassList и делегирование событий 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

ClassList и делегирование событий



• https://developer.mozilla.org/ru/docs/Web/API/Element/classList

• https://developer.mozilla.org/ru/docs/Web/API/Element/matches

• https://learn.javascript.ru/event-delegation

• https://medium.com/@stasonmars/%D0%B4%D0%B5%D0%BB%D0%B5%D0%B3%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D1%81%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D0%B8%CC%86-%D0%B2-javascript-d91cbdd8916a

Чтобы обратиться к списку классов нужно прописать.classList – свойство, которое есть у этого DOMузла

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>Document</title>

</head>

<body>

<div id="first" class="btn-block">

<button class="blue some"></button>

<button></button>

<button></button>

<button></button>

<button></button>

<button></button>

<button></button>

</div>

 

<script src="script.js"></script>

</body>

</html>

const btns = document.querySelectorAll('.button');

//console.log(btns.classList); - у псевдомассива не сушествует свойства classList

console.log(btns[0].classList.length); - узнаю сколько классов у данной кнопки -> 2

Методы classList

console.log(btns[0].classList.item(0)); - узнать первый класс   

console.log(btns[0].classList.add('red')); - добавить класс

console.log(btns[0].classList.remove('blue')); - удалить класс

console.log(btns[0].classList.toggle('blue')); - если есть удалит иначе добавит

Если есть нужный класс, то делаем то-то

if (btns[0].classList.contains("red")){

console.log('red');

}

Нажимая первую кнопку добавляется класс red втрой кнопке при его отсутсвии или удалется при наличии. Можно через toggle, но инога наличие класса нужно проверять вручную

const btns = document.querySelectorAll('button');

btns[0].addEventListener('click', () => {

if (!btns[1].classList.contains('red')) {

btns[1].classList.add('red');

} else {

btns[1].classList.remove('red');

}

});

 - устаревший метод

Делегирование

Допустим много кнопок и при нажатии на них должно происходить одно и тоже событие

Берем элемент, который является родителем всех кнопок и вешаем обработчик событий на него, а внутри будем проверять на что мы кликнули, т.е назначаю функцию для его потомков, если они подходят под определённые параметры

Не все элементы поддерживают событие клика, существует теги которые не возможно кликнуть  br

 

Продвинутое делигрование. Работает только для button class =” red ”

 



Поделиться:


Последнее изменение этой страницы: 2021-07-18; просмотров: 129; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.17.46 (0.005 с.)