2009-12-31 2 views
32

Я пытаюсь добавить! Важно в атрибуте CSS с помощью JQuery, какКак включить! Важно в JQuery

$("tabs").css('height','650px;!important'); 

но важно! Не имеет никакого эффекта. Как включить! Важно в jquery?

+1

Вы можете попробовать без запятой между значением и важно!? –

+1

nope. Не работает !! – Soft

+2

Ответ Марка W - это ответ. Вам не нужно! Важно. –

ответ

90

По-видимому, можно сделать это в JQuery:

$("#tabs").css("cssText", "height: 650px !important;"); 

Src: http://bugs.jquery.com/ticket/2066

+13

Хотя это перезаписывает любые другие встроенные стили в элементе ... –

+4

Хотя вы можете сделать $ (elem) .css ('cssText', $ (elem) .css ('cssText') + "ваш новый css"). правильно? ;) – Juan

+1

Что такое cssText? – Diffy

1

Вам не нужно !important при изменении CSS с помощью jQuery, так как он изменяет атрибут style на элементы в DOM напрямую. !important необходим только в таблицах стилей, чтобы запретить определенное правило стиля от переопределения на более низком уровне. Изменение style напрямую является самым низким уровнем, на который вы можете пойти, поэтому !important не имеет значения.

+32

Если вы не хотите переопределять существующее важное правило ... – Quentin

+2

Да: если в таблице стилей, которую вы пытаетесь переопределить, есть '! Important', вам нужно будет это в '$(). css()'. –

+0

Как и другие комментарии, это просто неправильно. Хотя атрибут 'style' переопределяет весь CSS, который применяется без'! Important', он не влияет на CSS, который применяется с '! Important'. – Makyen

4

Я решил эту проблему с:

inputObj.css('cssText', inputObj.attr('style')+'padding-left: ' + (width + 5) + 'px !IMPORTANT;'); 

Так нет рядный Стиль не теряется, А.Н. последний переопределяет первый

0

Также возможно добавить более важные пр. operties:

inputObj.attr('style', 'color:black !important; background-color:#428bca !important;');

Смежные вопросы