Иногда, когда мы используем плагин, такой как jQuery UI, он добавляет класс и перезаписывает стили стилей. Но я хочу, чтобы мой класс всегда применялся к элементу.Как убедиться, что класс всегда применяется к элементу с jQuery?
.red {color: red;}
.plugin_style {color: blue;}
<p id="foo" class="red">foo</p>
<a href="#" id="doSomething">do something</a>
$.fn.doSomething = function() {
$(this).css("border", "1px solid #f00").addClass("plugin_style");
return $(this);
};
$("#doSomething").on("click", function() {
// this adds class "plugin_style"
// generated source: class="red plugin_style"
$("#foo").doSomething();
// remove "red"
// generated source: class="plugin_style"
$("#foo").removeClass("red");
// add "red"
// generated source: class="plugin_style red"
$("#foo").addClass("red");
});
Удаляя и добавляя класс красный, красный идет после каждых других классов в сгенерированном источника, и должны перезаписать стиль, определенный в plugin_style. Но цвет еще синий.
Может кто-нибудь объяснить это?
обновление
Добавляя !important
всегда держать .red применяется. Но без него .red также должен перезаписывать .plugin_style, поскольку он приходит после.
'Последнее правило, определенные переопределяет любые previous', я не знаю, что. Хорошо, допустим, я не могу изменить порядок, который они определены. Как я могу применить .red, когда doSomething вызывается без использования .css («color», «red») '? – user1643156