Как отловить клик по всей html таблице, кроме последней колонки?
У меня есть следующий код, который успешно работает в Yii2:
$('body').on('click', '.directory-index .grid-view tbody tr',function(){
var data = $(this).data();
$('#modal-2 .modal-body').load('/directory/contract/update?id='+ data.key, function(){
$('#modal-2').modal({show:true});
});
});
Суть кода: открывать модальное окно, при клике на строке из таблицы (строка имеет вид <tr data-key="1">, откуда и берется data.key). И вроде бы все успешно. Суть вопроса: Как сделать так, чтобы этот код НЕ исполнялся на 6-й колонке в таблице? т.е. первые 5 колонок - если на них кликнуть, все должно работать, а на последней нет, т.к. там лежат кнопки, на которые прописаны другие действия. Либо, например добавить атрибут ко всем ячейкам в 6-й колонке, и если атрибут есть, то действия не выполнять?
Ответы (1 шт):
Добавляем клик на все td внутри tr, кроме последней, и вешаем на них клик:
$('body').on('click', '.directory-index .grid-view tbody tr td:not(:last-child)', function(){
После этого данные (var data = $(this).data();) , будут браться с самой td. Чтобы исправить это просто ищем ближайшый tr:
var data = $(this).closest('tr').data();