2013-07-22 3 views
0

Мне нужно установить высоту класса, если идентификатор имеет определенный класс. Я использую ниже код, который не работаетjQuery, если ID hasClass не работает

if ($('#nav_menu').hasClass('active')){ 
    $('.extra').css("height","3000px"); 
} 
else{ 
    $('.extra').css("height","100%"); 
} 

HTML, из #nav_menu является <li id="nav_menu"> этот элемент списка получает класс при нажатии. Поэтому, когда это <li id="nav_menu" class="active">, класс .extra должен установить его высоту, равную 3000 пикселей.

Что случилось с моим условием if? Thanks

+1

Вы ожидали, что это бежать, когда кто-то парит свое меню, потому что это только собирается запустить один раз, когда страница загружается , – dezman

+0

@watson Я использовал '$ ('# nav_menu'). Click (function() { $ ('. Extra'). Css (" height "," 3000px ");});' раньше, но нужно ' .extra' height для сброса при нажатии другого 'li'. – Anagio

+0

«Мне нужно установить высоту класса, если идентификатор имеет определенный класс». Это звучит как неэффективное использование CSS :-) – Pieter

ответ

0

Вместо .css вы можете использовать .height. Также вы обрабатываете его с помощью обработчика .on('click',..), нет необходимости проверять, has hasClass или нет.

По умолчанию:

.extra { 
height: 100% 
} 

JS:

$('#nav_menu').on('click', function() { 
    $('.extra').height(3000px);  
}); 
+0

Спасибо. Я использовал аналогичную функцию, но мне нужно, чтобы .extra сбросился на 100%, как только на ссылку li на – Anagio

+0

.extra уже установлен на 100% в таблице стилей – Anagio

+0

Тогда вы нажимаете другой 'li', вы должны сбросить этот' .extra' там. После того, как вы нажмете, вы получите класс 'active', поэтому проверка класса очень похожа на клик. Надеюсь ты понимаешь. – Praveen

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