jQuery: сделать строку кликабельной, за исключением последнего столбца
мне удалось получить строки в моей таблице кликабельны и привязаны к href на <a>
элемент. Однако у меня возникли проблемы, когда я сделал селектор только для выбора строк, кроме последнего столбца.
С приведенным ниже кодом строка кликабельна активна только для всей строки, кроме последней ячейки, которая мне нужна, поскольку у меня есть административные ссылки в этой ячейке (ссылки для активации, редактирования, удаления и т. д. строк). Единственная проблема в том, что нет независимо от того, какую строку вы нажмете, она отправит вас по ссылке в самой верхней строке. Я думаю, что это имеет какое-то отношение к моему селектору для find('td a')
но я не могу понять.
$('#dataTable tr td:not(:last-child)').click(function () {
location.href = $('#dataTable tr').find('td a').attr('href');
});
наведение отлично работает и изменяет указатель только в том случае, если мышь находится над любой ячейкой, кроме последнего столбца.
$('#dataTable tr td:not(:last-child)').hover(
function() {
$(this).css('cursor','pointer');
},
function() {
$(this).css('cursor','auto');
}
);
2 ответов
это потому, что вы получаете все tr в таблице, а затем возвращается первый найденный якорь, попробуйте изменить его следующим образом:
$('#dataTable tr td:not(:last-child)').click(function () {
location.href = $(this).parent().find('td a').attr('href');
});
это означает, что он получит щелкнутый элемент $(this) как объект jquery, а затем перейдет к его родителю. (элемент строки).
$('#dataTable tr td:not(:last-child)').click(function () {
location.href = $(this).parent().find('td a').attr('href');
});
Я думаю, это должно сработать. Ваш код всегда берет href из первого "td a", который он находит внутри вашего dataTable. Этот код принимает a, который он находит в конкретном td, который вы ищете.