Вам необходимо применить класс ко всем ячейкам , за исключением той, по которой был выполнен щелчок, поэтому используйте метод not()
. Также обратите внимание, что для включения последующих кликов вам необходимо удалить этот класс из любых элементов td
перед добавлением его в следующий набор.
Кроме того, обратите внимание, что preventDefault()
является избыточным в обработчике щелчков td
, так как не существует действия по умолчанию для предотвращения. Кроме того, если вы хотите использовать псевдоним $
, используйте аргумент в обработчике document.ready.
С учетом всего сказанного попробуйте следующее:
jQuery($ => {
let $td = $('td').on('click', function() {
$td.removeClass('greyout').not(this).addClass('greyout');
})
});
td {
background-color: aqua;
transition-duration: 0.5s;
border: solid black 1px;
padding: 5px;
}
table {
border-collapse: collapse;
}
.greyout {
opacity: 0.2;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
<tr>
<td>4</td>
<td>5</td>
<td>6</td>
</tr>
<tr>
<td>7</td>
<td>8</td>
<td>9</td>
</tr>
</table>