Всем доброго времени суток!
Тема делегирование, пока не совсем понятна в теории и в практике, но все же взгляните, пожалуйста, на код, и подтолкните к правильной мысли, что не так?
"Дана таблица с юзерами с двумя колонками: имя и фамилия. Под таблицей сделайте форму, с помощью которой можно будет добавить нового юзера в таблицу. Сделайте так, чтобы при клике на любую ячейку появлялся prompt, с помощью которого можно изменить текст ячейки. Задачу решите с помощью делегирования (то есть событие должно быть навешано на table)."
<table>
<tr><th>First-name</th><th>Last-name</th></tr>
<tr><td>Yana</td><td>Bozhenko</td></tr>
<tr><td>Mariya</td><td>Shlak</td></tr>
</table>
<input type = "button" value = "click"/>
<input type = "text" placeholder = "first-name" id = "first-name">
<input type = "text" placeholder = "second-name" id = "second-name">
$("input[type = 'button']").on("click", click);
$("table").on("click", click);
let firstName = $("#first-name");
let secondName = $("#second-name");
function click() {
$("tr:last").after("<tr class = 'cell'><td class = 'first'>" + firstName.val() + "</td><td class = 'second'>" + secondName.val() + "</td></tr>");
}
function click(event) {
if (event.target === $("td")) { //если нажали на ячейку
let change = prompt("?");
if (change) {
event.target.html(change);
}
}
}
По нажатию на кнопу новые имя и фамилия добавляются. Проблема, я думаю, в условии.