Задать вопрос
@demidborodin
FrontEnd Developer

Как закрыть все toggle кроме одного?

Есть таблица, в ней постоянно дублируются вот такой кусок кода.
<table>
    <tbody>
        <td class="click">какой-то контент</td>
        <td class="description"> какой-то контент </td>

        <td class="click">какой-то контент</td>
        <td class="description"> какой-то контент </td>

         <td class="click">какой-то контент</td>
        <td class="description"> какой-то контент </td>
    </tbody>
</table>


Есть вот такой скрипт
$('table tbody tr.click').click(
    function () {
        $('.description').hide();
        $(this).addClass('open').next('.description').show();
    }
);


Сейчас это работает так.

Нажимаем на td.click - все td.description закрываются - next td.description открывается.
Мне нужно реализовать закрытие td.description по клику на td.click который его открыл (! и он не должен открыться снова !)

Пытался решить задачу добавлением класса к td.click но что-то идет не так, решил вернутся к исходному скрипту и спросить тут.
  • Вопрос задан
  • 2340 просмотров
Подписаться 1 Оценить Комментировать
Решение пользователя Демид Бородин К ответам на вопрос (3)
@demidborodin Автор вопроса
FrontEnd Developer
$('table tbody tr.click').click(
    function () {
        var next = $(this).addClass('open').next('.description');
        if (!(next).is(':visible')) {
            $('.description').hide();
            next.show(); // показать, если элемент скрыт
        } else {
            next.hide();
        }
    }
);
Ответ написан
Комментировать