Использую делегирование в таблице
Всем доброго времени суток!
Тема делегирование, пока не совсем понятна в теории и в практике, но все же взгляните, пожалуйста, на код, и подтолкните к правильной мысли, что не так? "Дана таблица с юзерами с двумя колонками: имя и фамилия. Под таблицей сделайте форму, с помощью которой можно будет добавить нового юзера в таблицу. Сделайте так, чтобы при клике на любую ячейку появлялся 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); } } } По нажатию на кнопу новые имя и фамилия добавляются. Проблема, я думаю, в условии. |
if (event.target.nodeName == "TD") или так if (event.target.matches("td")) |
event.target.html(change); Теперь проблема в этом. event.target.html is not a function Пробовал text(change) такая же история. Пробовал append/prepend, просто, чтобы проверить будет хоть что-либо меняться - меняется. В чем тогда дело?:-? |
plug-ugly, почему ты пытаешься найти методы жиКвери в самой ДОМ-модели?
У тебя на все про все только свойство innerHTML или методы http://www.fpublisher.ru/documentati...s#happendchild http://www.fpublisher.ru/documentati...#hinsertbefore Цитата:
|
Часовой пояс GMT +3, время: 13:34. |