jQuery активировать функцию, когда TD получает фокус - PullRequest
0 голосов
/ 09 января 2020

Я создал редактируемую таблицу, которая хорошо работает, когда мой пользователь щелкает ячейку таблицы. Однако мне нужна та же функциональность, когда пользователь вкладывает ячейку таблицы (без щелчка мышью). Вот соответствующие jQuery:

$('.cd_editable').on('click', 'td', function () { 
    //do stuff
});

Это прекрасно работает, когда пользователь щелкает ячейку таблицы. Есть ли способ, которым я могу изменить эту строку, чтобы она запускалась, когда мои пользовательские вкладки там? Все редактируемые TD имеют номера tabindex, поэтому табуляция работает.

Спасибо за любую помощь.

1 Ответ

2 голосов
/ 09 января 2020

Используйте событие фокуса.

$("table tbody").on("focus", "td", function () {
  console.log(this)
})
td {
  width: 50px;
  border: 1px dashed black;
}

td:focus {
  background-color: #CCC
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
  <tbody>
    <tr>
      <td contenteditable="true"></td>
      <td contenteditable="true"></td>
      <td contenteditable="true"></td>
      <td contenteditable="true"></td>
    </tr>
    <tr>
      <td contenteditable="true"></td>
      <td contenteditable="true"></td>
      <td contenteditable="true"></td>
      <td contenteditable="true"></td>
    </tr>
  </tbody>
</table>
...