2013-09-25 2 views
11

У меня проблема.jQuery hide() метод do show element с дисплеем: none! Important

Я назначен элемент класса, который имеет следующие CSS:

.cls { 
    display:none !important; 
} 

Когда я пытаюсь показать этот элемент с JQuery

$(".cls").show(); 

Это не работает.

Может ли кто-нибудь помочь мне в том, как скрыть этот элемент?

+0

Вы хотите «скрыть» или «показать»? –

+0

Я хочу спрятаться. – Pupil

+1

Вы не можете скрыть, используя шоу. – Virus721

ответ

21
$('.cls').attr('style','display:block !important'); 

DEMO

+0

+1 Приятно знать! – Alvaro

+0

не рекомендовал бы встроенный стиль, делает разметку очень трудно поддерживать. –

+0

@TarunPai не фальшивый! Использование логики toggleClass() может быть лучшим подходом, но может зависеть от того, что ищет OP –

4

2 способа сделать это,

1) Удалите !important из вашего .cls класса,

.cls{ 
    display: none; 
} 

Но я полагаю, вы бы использовали это в другом месте так что это может привести к регрессии.

2) То, что вы могли бы в качестве альтернативы сделать это, есть еще один класс и переключения, что

.cls-show{ 
    display: block !important; 
} 

, а затем в вашем JavaScript,

$('.cls').addClass(".cls-show"); 

Затем, когда вам нужно, чтобы скрыть его снова, вы можете,

$('.cls').removeClass('.cls-show'); 

Это поможет вам сохранить вашу разметку чистой и читаемый

1

! Important; удалите все правила и примените css desfined как ! Important;. Поэтому в вашем случае он игнорирует все правила и применяет дисплей: нет.

Так что это:

.cls { 
    display:none 
} 

См this also

0

Если свойство только в селекторе класса CLS является дисплей один, вы можете сделать это и не нужно добавлять какие-либо дополнительные занятия или изменить встроенный стиль.

Чтобы показать им:

$('.cls').removeClass("cls").addClass("_cls"); 

Чтобы скрыть их:

$('._cls').removeClass("_cls").addClass("cls"); 
0

Просто был именно этот вопрос, вот что я сделал первый, я добавил еще один класс к элементу, такие как:

<div class="ui-cls cls">...</div> 

Тогда в JavaScript:

$('.ui-cls').removeClass('cls').show(); 

Хорошая вещь, что вы также можете иметь этот код, чтобы скрыть его снова:

$('.ui-cls').hide(); 

и это не имеет значения, сколько раз вы скрыть/показать, это будет еще работать