Событие не произойдет с не - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть дата, в каждой строке у меня есть кнопка удаления.

Если пользователь нажимает на строку, но не удаляет столбец, я хотел бы удалить событие ... в противном случае измените

Мой код js

$("#vehicleTable tbody tr td :not('.delete')").on('click', function () {
    ...
});

$("#vehicleTable").on('click','.delete',function(e){
    ...
});

На самом деле только удалитьсобытие произойдет ... если оно щелкнет в любом другом месте, другое событие не произойдет.

Любое предложение?

1 Ответ

0 голосов
/ 27 сентября 2018

Вы должны удалить лишний пробел в вашем селекторе, иначе ваш селектор будет искать внутри вашего td элементы, которые не имеют указанного класса delete:

$("#vehicleTable tbody tr td :not('.delete')").on('click', function () {
____________________________^

Должно быть:

$("#vehicleTable tbody tr td:not('.delete')").on('click', function () {

Рабочий образец:

$("#vehicleTable tbody tr td:not('.delete')").on('click', function() {
  console.log("EDIT");
});

$("#vehicleTable").on('click', '.delete', function(e) {
  console.log("DELETE");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<table id="vehicleTable" border=1>
  <tr>
    <th>Company</th>
    <th>Contact</th>
    <th>Country</th>
    <th>Actions</th>
  </tr>
  <tr>
    <td>Alfreds Futterkiste</td>
    <td>Maria Anders</td>
    <td>Germany</td>
    <td class="delete">DELETE</td>
  </tr>
  <tr>
    <td>Centro comercial Moctezuma</td>
    <td>Francisco Chang</td>
    <td>Mexico</td>
    <td class="delete">DELETE</td>
  </tr>
  <tr>
    <td>Ernst Handel</td>
    <td>Roland Mendel</td>
    <td>Austria</td>
    <td class="delete">DELETE</td>
  </tr>
</table>
...