jquery выбрать всю строку кроме последнего столбца - PullRequest
1 голос
/ 02 февраля 2020

У меня есть такая таблица:

enter image description here

Когда я нажимаю на строку, выделяется вся строка. Например, на изображении выше второй ряд выбран. После выбора строки имя и семейство отображаются в нижней части таблицы.

Если вы посмотрите на код jquery, используются команды ajax. Проблема в том, что когда я нажимаю кнопку Details в каждой строке, запускаются сценарии Ajax. Как нажать кнопку без выполнения кода Ajax?

$("#tablelist tr").click(function () {
        $(this).addClass('selected').siblings().removeClass('selected');
        $("#selectedUser").html("Selected User : " + $(this).find('td').eq(1).html() + ' ' + $(this).find('td').eq(2).html());

$.ajax({
    //some code
});
});
.selected {
    background-color: blue;
    color: white;
    color: #FFF;
    }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
  <thead>
    <tr>
        <td>rows</td>
        <td>name</td>
        <td>family</td>
        <td>username</td>
        <td>Jobs</td>
    </tr>
  </thead>
<tbody id="tablelist">
    @foreach (var item in TableList)
    {
        <tr style="font-size:13px;">
            <td>@counter</td>
            <td>@item.FirstName</td>
            <td>@item.Family</td>
            <td>@item.UserName</td>
            <td>
                <a href="Controller/Action?id="+ @item.id">Details</a>
            </td>
        </tr>
    }
</tbody>

Ответы [ 2 ]

1 голос
/ 02 февраля 2020

Используйте stopPropagation при нажатии кнопки сведений:

$("#tablelist tr").click(function () {...})
$("#tablelist tr a").click(function (e) { e.stopPropagation() })
0 голосов
/ 02 февраля 2020

Вы привязываете слушателя к целому ряду, поэтому вы не можете исключить его часть.

Вместо этого попробуйте привязать нужные ячейки. Вместо:

$("#tablelist tr")

Попробуйте

$("#tablelist td:not(:last-child)")

Просто имейте в виду, что если в строке есть место, которое не является ячейкой, оно не будет запускать событие. Вы можете отрегулировать отступы и поля, чтобы решить эту проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...