Delegación en jQuery

Si has estudiado JavaScript, ya te has encontrado con el tema de la delegación de eventos, con la cual se puede, por ejemplo, eliminar problemas al asignar eventos para nuevos elementos. Veamos cómo se vería esto en jQuery.

Tomemos el siguiente código HTML:

html<ul>
  <li>texto</li>
  <li>texto</li>
  <li>texto</li>
</ul>

El CSS para él se ve así:

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

Ahora, usando el método on, vinculemos el método click no al elemento de lista li, como hacíamos en lecciones anteriores, sino a la lista misma ul. También pasaremos un segundo parámetro (opcional) 'li' como selector de descendientes. Veamos qué obtuvimos:

javascript$('ul').on('click', 'li', function() {
  $(this).append('!');
});
Задание 1

Dado un ul, con varios li dentro. Debajo del ul haz un botón, al presionar cual al final del ul se agregará un nuevo li con el texto 'punto'. Haz que al hacer clic en cada li, se le agregue al final un '!'. Esto debe funcionar también para los li recién agregados. Resuelve la tarea usando delegación (es decir, el evento debe ser asignado al ul).

Задание 2

Dada una tabla de usuarios con dos columnas: nombre y apellido. Debajo de la tabla haz un formulario, con el cual se pueda agregar un nuevo usuario a la tabla. Haz que al hacer clic en cualquier celda aparezca un prompt, con el cual se pueda cambiar el texto de la celda. Resuelve la tarea usando delegación (es decir, el evento debe ser asignado a la table).