Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Использую делегирование в таблице (https://javascript.ru/forum/jquery/70738-ispolzuyu-delegirovanie-v-tablice.html)

plug-ugly 28.09.2017 23:21

Использую делегирование в таблице
 
Всем доброго времени суток!

Тема делегирование, пока не совсем понятна в теории и в практике, но все же взгляните, пожалуйста, на код, и подтолкните к правильной мысли, что не так?

"Дана таблица с юзерами с двумя колонками: имя и фамилия. Под таблицей сделайте форму, с помощью которой можно будет добавить нового юзера в таблицу. Сделайте так, чтобы при клике на любую ячейку появлялся 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);
				}
			}
		}


По нажатию на кнопу новые имя и фамилия добавляются. Проблема, я думаю, в условии.

j0hnik 29.09.2017 00:05

if (event.target.nodeName == "TD")


или так

if (event.target.matches("td"))

plug-ugly 29.09.2017 08:41

event.target.html(change);


Теперь проблема в этом.
event.target.html is not a function

Пробовал text(change) такая же история.
Пробовал append/prepend, просто, чтобы проверить будет хоть что-либо меняться - меняется.

В чем тогда дело?:-?

ksa 29.09.2017 09:05

plug-ugly, почему ты пытаешься найти методы жиКвери в самой ДОМ-модели?

У тебя на все про все только свойство innerHTML или методы
http://www.fpublisher.ru/documentati...s#happendchild
http://www.fpublisher.ru/documentati...#hinsertbefore

Цитата:

Сообщение от plug-ugly
В чем тогда дело?

В том, что ты пытаешься работать на каком-то своем ЯП...


Часовой пояс GMT +3, время: 06:24.