Как вы, скорее всего, уже знаете, в JQuery просто выбрать все элементы в документе, которые имеют определенный класс CSS, а затем, используя цепочку, назначить общие обработчики событий для выбранных элементов:
$(".toolWindow").click(toolWindow_click);
$(".toolWindow").keypress(toolWindow_keypress);
Как обычно, класс "toolWindow" также обычно определяется в CSS и связан с некоторыми визуальными стилями:
.toolWindow{
color:blue;
background-color:white;
}
Атрибут class теперь отвечает за указание не только внешнего вида (визуального состояния) элемента, но и поведения. В результате я довольно часто использую этот подход и определяю имена классов CSS больше как псевдообъектно-ориентированные классы, а не только визуальные классы CSS. Другими словами, каждый класс представляет как состояние (стили CSS), так и поведение (события).
В некоторых случаях я даже создавал классы без визуального оформления и просто использовал их как удобный способ присвоения поведения элементам.
Более того, плагин jQuery LiveQuery (и встроенная функция live ()) делают этот подход еще более эффективным, автоматически связывая события с динамически создаваемыми элементами, принадлежащими указанному классу.
В последнее время я в основном использую имена классов для определения общего набора поведения для связанных элементов DOM и только позже использую их для определения визуального стиля.
Вопросы: Является ли это ужасным неправильным использованием атрибута CSS "class", если да, то почему?
С другой стороны, возможно, это совершенно обоснованный подход к дальнейшей реализации "отдельных задач" и повышению удобства поддержки страниц HTML / DHTML?