Вы можете проверить этот пример , где NavLink
стилизованы под гламур, но Link
также может быть стилизован. Нажмите работает.
Просто убедитесь, что ваш код соответствует коду в примере. (проверьте версии и т. д.)
"Класс" является на самом деле частью данных документа (и надо надеяться семантически релевантный) не стиль или дизайн его.
Поэтому это должно хорошо использовать для обоих.
Я думаю, что это perfctly допустимый.
Единственное правило, которого я пытаюсь придерживаться, состоит в том, что имена классов должны иметь семантическое значение. Никакая потребность в них, чтобы иметь любого не связала CSS или JavaScript, если Вы не хотите также. Просто сделайте имя класса описательным из содержания.
Плохие имена классов (согласно моему правилу):
<span class="brightRedBold">Wear Protective Gloves</span>
<a class = "openInNewWindow" ...>
По моему мнению они настолько же плохо как пишут встроенные стили и JavaScript
Хорошие имена классов:
<span class="urgentWarning">Wear Protective Gloves</span>
<a class = "offSiteLink" ...>
Можно присоединить любые стили и поведения, которые Вы хотите к тем классам и придумываете намного более последовательный и удобный в сопровождении дизайн. Попытайтесь определить разговорный стиль для "brightRed", например.
Я не думаю, что существует что-то не так с ним. Для сейфа можно всегда удостоверяться, что классы, которые Вы используете для поведения, являются отдельными от классов, которые Вы используете для презентации.
В его корне сила jQuery является своим использованием синтаксиса селектора CSS для управления DOM. Тот синтаксис был предназначен для CSS, для презентации, в начале. Однако использование его для определения поведения (выбираете ли Вы классы или не) оказалось действительно мощной техникой. Кто мог возразить против этого?
Я пытаюсь использовать идентификаторы везде, где возможный и избегают классов. Но это вовсе не значит его плохое использование их, вполне обратное. Но я верю, используете ли Вы идентификаторы, Ваш в некотором смысле принудительный использовать очень структурированную и значимую семантическую разметку. Если Вы выкладываете классы каждый раз, Вам нужен элемент для рассмотрения определенного пути - вероятно, выполнение его неправильно.
Это - вполне спорная тема, таким образом, это, что я бросаю в панорамирование.
Я использовал это для установки фильтров нажатия клавиши для числового только поля. Класс был бы "числовым", "десятичным", "отрицательный десятичный" или "десятичный список" (позволяют запятую и пространство). Это было очень легко считать, также.
Это зависит от того, что Вы подразумеваете под 'поведением'. Например, если Ваше поведение является действительно просто необычным эффектом моделирования, я мог бы позволить ему скользить как просто больше расширенного стиля.
Иначе я все еще думаю, что это хорошо, но я, вероятно, определил бы отдельный (пустой) класс CSS, чтобы управлять поведением, сохранить разделение проблем.
Это - совершенно звуковой подход, и очень для чего должен использоваться атрибут класса.
Я сказал бы, что, если класс только используется jQuery а не CSS, хорошо иметь четкое соглашение о присвоении имен, которое указывает на использование - если бы не себя, затем по крайней мере, для кого-либо еще, кто может работать с Вашим кодом, видеть Класс, на который не ссылаются в CSS, и затем удалите его :)
Я склонен иметь определенное имя класса, которое определяет цель объекта, и далее, часто довольно универсальное звучание, имена классов, которые указывают состояние объекта. например,
класс = "подсказка" - класс подсказки = "подсказка открывается" - подсказка в отображенном состоянии
Таким образом, можно обобщить соглашение о присвоении имен для поведений легко (и потенциально код JS для них также).
Кроме того, при помощи CSS для определения презентации различных состояний код JS намного более изящен чем при управлении всем этим через JS., например:
$ ('div.toolTip') .addClass ('открытый');
вместо
$ ('div.toolTip') .css ({дисплей: 'блок'... и т.д. и т.д.});
PS. Я не думаю, что это - место для вхождения в Класс по сравнению с вопросом об идентификаторе, который действительно является другими дебатами!
Я продолжаю думать об этом. Прямо сейчас я думаю, что несколько классов являются все еще лучшим подходом и как люди сказали, весьма корректный. Но это делает для грязного DOM, если ничто иное, когда у Вас есть сто элементов как:
<div class="draggable sortable droppable list-item editable text">text</div>
Существуют некоторые вещи, как флаги, можно присвоить с данными () метод в jQuery. Я хотел бы видеть, что данные jQuery () развиваются в инструмент как то, как мы используем классы.
Как конвенция мне нравится использовать префикс на моих классах так, чтобы я знал, что класс в файле CSS связывается с кодом JavaScript. Например, с помощью префикса "Js":
.JsButton {...}.JsToggleElement {...}
Другая конвенция состояла бы в том, чтобы просто обычно использовать только строчные буквы для классов CSS, и идентификаторы (остерегайтесь этого, некоторые браузеры чувствительны к регистру!), и использование CamelCasing для связанных с JavaScript классов.
Почему из всего этого то, что часто времена класс, связанный с поведением, будет удобно брать правила моделирования.
Я рассмотрел также создающие классы просто для поведения JavaScript и использую отдельный класс для моделирования, но это - большое крохоборство ни для чего. Вместо этого я просто определил бы ясно классы в коде JavaScript:
mySuperObject =
{
CSS_TOGGLE: 'JsToggle',
CSS_HIDE: 'JsHide',
initialize:function()
{
var elems = SomeJsLib.getElementsByClassname(document, 'a', this.CSS_TOGGLE);
...