Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #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);
				}
			}
		}


По нажатию на кнопу новые имя и фамилия добавляются. Проблема, я думаю, в условии.
Ответить с цитированием
  #2 (permalink)  
Старый 29.09.2017, 00:05
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

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


или так

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

Последний раз редактировалось j0hnik, 29.09.2017 в 00:09.
Ответить с цитированием
  #3 (permalink)  
Старый 29.09.2017, 08:41
Интересующийся
Отправить личное сообщение для plug-ugly Посмотреть профиль Найти все сообщения от plug-ugly
 
Регистрация: 21.08.2017
Сообщений: 27

event.target.html(change);


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

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

В чем тогда дело?
Ответить с цитированием
  #4 (permalink)  
Старый 29.09.2017, 09:05
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

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

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

Сообщение от plug-ugly
В чем тогда дело?
В том, что ты пытаешься работать на каком-то своем ЯП...
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двойной скролл бар в таблице с плавающим Thead soloinnet Элементы интерфейса 0 13.07.2015 17:26
Делегирование и hover Jquery Trues Элементы интерфейса 6 23.05.2015 22:00
Криво работает скрипт jQuery поиска в таблице dim565 jQuery 0 17.12.2011 21:23
Изменение цвета ячейки в таблице, при наведении на строку другой таблицы Psychosonic Общие вопросы Javascript 12 24.11.2010 16:44
Разварачивание строк в таблице на jQyery Suharik jQuery 49 07.05.2010 11:20