Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.02.2016, 16:36
Аспирант
Отправить личное сообщение для Floyd Посмотреть профиль Найти все сообщения от Floyd
 
Регистрация: 20.05.2014
Сообщений: 40

грамотно привязать делегированный обработчик к таблице?
всем привет снова.
аяксом получаю и вставляю на страницу таблички (у них класс .base-table).
в этих табличках при нажатии клике строка выделяется.
сейчас обработчик выглядит вот так:
$("body").on(h_click, ".base-table tbody tr", function(event) { ... }

если я верно понимаю, боди постоянно ждет появления tr с предком tbody у которого предок с классом base-table и навешивает клик.

сделать
$(".base-table").on(h_click, "tbody tr", function(event) { ... }
не могу, тк таблички появляются динамически.

нужно что-то вроде
$("body").on(h_click, ".base-table", function(event) {
// а вот здесь отловить грамотно строку tbody tr, на которой кликнули.
 ... }

вопрос: верным ли путем я это хочу оптимизировать, и как грамотно отловить tbody tr?
спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 05.02.2016, 16:57
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Floyd
$("body").on(h_click, ".base-table", function(event) {
// а вот здесь отловить грамотно строку tbody tr, на которой кликнули.
... }
Нужно как раз $(".base-table").on(h_click, "tr", fuction() {this - это и есть строка по которой щелкнули} и это делегирование обработки. А если надо так, то сразу после получения ответа и построения таблицы устанавливайте этот обработчик.
Ответить с цитированием
  #3 (permalink)  
Старый 05.02.2016, 17:01
Аспирант
Отправить личное сообщение для Floyd Посмотреть профиль Найти все сообщения от Floyd
 
Регистрация: 20.05.2014
Сообщений: 40

это я понимаю, но сейчас не могу изменить структуру настолько, что после аякса устанавливать обработчик.
Ответить с цитированием
  #4 (permalink)  
Старый 05.02.2016, 17:32
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

$("body").on(h_click, ".base-table tr", function() {
     this это tr
 ... }
Ответить с цитированием
  #5 (permalink)  
Старый 08.02.2016, 12:20
Аспирант
Отправить личное сообщение для Floyd Посмотреть профиль Найти все сообщения от Floyd
 
Регистрация: 20.05.2014
Сообщений: 40

я понимаю про this,
просил только как лучше всего при клике на .base-table (и this будет таблица) отловить tr на котором был клик.
абы как файндами и парентами реализовано, хотел решения на уровне отлова свойств объекта target или подобного
Ответить с цитированием
  #6 (permalink)  
Старый 08.02.2016, 13:07
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

А зачем через target, если указано делегирование обработки TR, JQ сразу его сразу и вернет, и это будет this, иначе зачем тогда вообще подключать JQ.
Ответить с цитированием
  #7 (permalink)  
Старый 08.02.2016, 17:25
Аспирант
Отправить личное сообщение для Floyd Посмотреть профиль Найти все сообщения от Floyd
 
Регистрация: 20.05.2014
Сообщений: 40

нет, это что-то с чем-то...

из первого сообщения:
нужно что-то вроде
$("body").on(h_click, ".base-table", function(event) {
// а вот здесь отловить грамотно строку tbody tr, на которой кликнули.
// УТОЧНЕНИЕ: отловить tr на котором был клик. абы как файндами и парентами реализовано, хотел решения на уровне отлова свойств объекта target или подобного - в event или this
... }
Ответить с цитированием
  #8 (permalink)  
Старый 08.02.2016, 17:36
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

А какая хрен разница либо сразу function() ... this, это и есть строка по которой щелкнули, или же function(event) ... event.target?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработчик в таблице amd3000 Events/DOM/Window 14 26.09.2014 19:43