Показать сообщение отдельно
  #1 (permalink)  
Старый 28.09.2017, 23:21
Интересующийся
Отправить личное сообщение для plug-ugly Посмотреть профиль Найти все сообщения от plug-ugly
 
Регистрация: 21.08.2017
Сообщений: 27

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

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

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


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