Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.03.2015, 21:54
Аватар для Alexander Belov
Профессор
Отправить личное сообщение для Alexander Belov Посмотреть профиль Найти все сообщения от Alexander Belov
 
Регистрация: 12.03.2015
Сообщений: 173

Клик по parent
Столкнулся со следующей задачей:
есть <table>-<tr>-<td>, внутри <td> есть <div>, внутри у <div> есть три <span> элемента.

Мне нужно, чтобы при клике на любое из содержимого <td> Javascript распознавал их как клик на сам <td>. По сути получается, на какой элемент кликаешь, тот и является target.

Пробовал в стилях прописать z-index с большим значением для <td> по отношению к его содержимому (<div>, <span>) . Не дало нужного результата.

Вот набросок, где функция показывает, по какому элементу был сделан click.
Прошу подсказать решение.

http://jsbin.com/mocajahalu/2/edit?html,css,js,output
Ответить с цитированием
  #2 (permalink)  
Старый 28.03.2015, 22:05
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Alexander Belov,
http://learn.javascript.ru/event-delegation
Ответить с цитированием
  #3 (permalink)  
Старый 28.03.2015, 22:22
Аватар для Alexander Belov
Профессор
Отправить личное сообщение для Alexander Belov Посмотреть профиль Найти все сообщения от Alexander Belov
 
Регистрация: 12.03.2015
Сообщений: 173

рони,
благодарю за ссылку

+ Если кому-то интересно решение:
http://jsbin.com/tedasihino/1/edit?html,css,js,output
Ответить с цитированием
  #4 (permalink)  
Старый 28.03.2015, 22:47
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Alexander Belov,
решение по ссылке вы видимо вы не прочитали
Ответить с цитированием
  #5 (permalink)  
Старый 28.03.2015, 22:53
Аватар для Alexander Belov
Профессор
Отправить личное сообщение для Alexander Belov Посмотреть профиль Найти все сообщения от Alexander Belov
 
Регистрация: 12.03.2015
Сообщений: 173

рони,
Пока только просмотрел. В пн буду разбираться с делегированием.
Ответить с цитированием
  #6 (permalink)  
Старый 28.03.2015, 22:58
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Alexander Belov,
если вы вложите ещё элемент то вам придётся добавлять ещё if - по ссылке решение для любой вложенности элементов
Ответить с цитированием
  #7 (permalink)  
Старый 28.03.2015, 23:09
Аватар для Alexander Belov
Профессор
Отправить личное сообщение для Alexander Belov Посмотреть профиль Найти все сообщения от Alexander Belov
 
Регистрация: 12.03.2015
Сообщений: 173

рони,
Ради интереса проверил. Вроде бы, не обязательно if добавлять, можно просто дописать в уже существующее условие новый parent. Нвпример, мы добавили в <span> элемент <a>.
Тогда условие выглядит следующим образом:
document.addEventListener('click',function (e) {
var parentTarget = null;

if (e.target.tagName === "TD") {
parentTarget = e.target;
} else if (e.target.parentElement.tagName === "TD" || "span") {
parentTarget = e.target.parentElement;
}

alert(parentTarget);
e.preventDefault();
}, false);
Ответить с цитированием
  #8 (permalink)  
Старый 28.03.2015, 23:46
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Alexander Belov,
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двойной клик niko099 Элементы интерфейса 2 18.09.2014 11:37
Клик и двойной клик ksa Events/DOM/Window 15 19.12.2013 09:55
Клик по координатам major555 Общие вопросы Javascript 2 24.03.2013 22:21
сломался клик средней кнопкой Gvozd Сайт Javascript.ru 8 08.06.2012 17:57
Как при быстром многократном клике по кнопке обрабатывать только первый клик battrack jQuery 3 22.03.2012 10:47