2015-02-20 3 views
1

Как создать событие click для таблицы row (tr) и данных таблицы (td).Столбец таблицы и ячейки

Например, что-то подобное, как этого

$("table tr").on("click", function(){ 
     // do something with tr without td click handler 
}); 

$("table tr td").on("click", function(){ 
     // do something with td without tr click handler 
}); 

Заранее спасибо

+0

Можете ли вы предоставить часть своего кода? что ты уже испробовал? Что именно вы ожидаете? –

+1

'$ ('table tr')' не будет влиять на таблицу, только все ее дочерние 'tr'. Это работает так же, как CSS .. '$ ('table tr td')' будет просто влиять на всех детей 'td' внутри всех дочерних '' '' '' 'table' – CodeGodie

+0

, почему вы хотите это сделать? измените свой путь, вместо того, чтобы писать странные коды :) –

ответ

2

Чтобы связать событие щелчка, чтобы td элемента так, чтобы он не срабатывает родителю tr щелчка, вы должны предотвратить событие от барботажа дерево DOM. Вы должны вызвать stopPropagation метод объекта события:

$("table tr td").on("click", function(e) { 
    e.stopPropagation(); 
    // do something with td without tr click handler 
}); 

сделать что-то с тром без тд обработчика щелчка

Это также возможно, если вы свяжете щелкните событие захвата фазы (читать о event order) , Для этого вам нужно будет использовать метод HTMLElement's addEventListener, jQuery $.fn.on метод связывать событие в стадии барботирования распространения события. Однако обратите внимание, что это мало практического смысла, если вы думаете об этом. Скорее всего, вы хотите предотвратить пузырение события в td-> tr направлении на некоторые конкретные ячейки ячейки кликов.

Смежные вопросы