Как отловить клик по всей 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 шт):

Автор решения: InDevX

Добавляем клик на все 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();
→ Ссылка