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

Если вы изучали JavaScript, то вы уже сталкивались с темой делегирования событий, с помощью которого можно, например, избавиться от проблем при навешивании событий для новых элементов. Давайте посмотрим, как это будет выглядеть для jQuery.

Возьмем следующий HTML код:

<ul> <li>text</li> <li>text</li> <li>text</li> </ul>

CSS для него выглядит так:

li { width: 100px; cursor: pointer; }

Давайте теперь, с помощью метода on, будем привязывать метод click не к пункту списка li, как мы делали в предыдущих уроках, а к самому списку ul. Также мы передадим вторым (необязательным) параметром 'li' в качестве селектора потомков. Посмотрим, что получилось:

$('ul').on('click', 'li', function() { $(this).append('!'); });

Дан ul, в нем несколько li. Под ul сделайте кнопку, по нажатию на которую в конец ul будет добавляться новый li с текстом 'пункт'. Сделайте так, чтобы при клике на каждый li, ему в конец добавлялся '!'. Это должно работать и для вновь добавленных li. Задачу решите с помощью делегирования (то есть событие должно быть навешано на ul).

Дана таблица с юзерами с двумя колонками: имя и фамилия. Под таблицей сделайте форму, с помощью которой можно будет добавить нового юзера в таблицу. Сделайте так, чтобы при клике на любую ячейку появлялся prompt, с помощью которого можно изменить текст ячейки. Задачу решите с помощью делегирования (то есть событие должно быть навешано на table).



Чат с GPT Компилятор