Задать вопрос
Tortway
@Tortway

Как использовать атрибуты data-* не загромождая html код?

Привет всем.
Предлагаю обратить внимание на скриншот:
d8a2ba56a111474ca8ff2fcea848fb8e.png
На нём видно, что во всех тегах td, кроме последнего, написано:
data-toggle="collapse" data-target="#content-1"
По мне, это выглядит громоздко, особенно, если подобных строк в таблице очень много.
Конечно же, я мог написать эти атрибуты в tr, а td оставить пустыми, но, как вы понимаете, делать этого не стал, по той причине, что последняя колонка не должна их иметь. Дело в том, что последняя колонка содержит кнопки, при нажатии на которые коллапс не должен раскрываться.

Буду рад вашим предложениям, как эту проблему решить, сделать код менее громоздким.
  • Вопрос задан
  • 2422 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 2
crazyzubr
@crazyzubr
Python backend-developer
А почему не поставить data-атрибут на tr, а в выборке в скрипте прописать раскрытие коллапса не на все колонки, а только те что без класса icons-row:
$('td:not(.icons-row)').on('click', function(){ /*  код сворачивания */  })
Ответ написан
Tortway
@Tortway Автор вопроса
Спасибо пользователю Сrazyzubr за ответ. Благодаря ему, я придумал этот код:

1be51d96e837469eb54296ccf0021883.png
javascript:
3816a16060504153bdfe0767e7dea68a.png
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@bromzh
Drugs-driven development
Одна из целей использования data-атрибутов - как раз уменьшить количество строк js-кода. Например, в бутстрапе всякие табы и прочие элементы используют их, чтобы не прописывать поведение переключалок вручную в js. Так что польза их не писать там, где позволяет библиотека. весьма сомнительная. С другой стороны, если всё равно надо писать что-то на js с использованием таких атрибутов, то можно всё убрать в js. Тогда будет нагромождение в js-коде.
Ответ написан
Комментировать
gephaest
@gephaest
PHP, Yii2, Laravel
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы