Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Не работает функция slideUp в jquery.

Иван Филатов Ученик (185), закрыт 4 года назад
Есть html код, в котором ссылка с id="a1" и блок с id="wer"(вставить код не могу, mail его преобразовывает). Надо сделать так, чтобы при нажатии на ссылку блок открывался, если он скрыт и скрывался если он открыт. Изначально блок скрыт.

Вот код javascript:
$('#wer').slideUp();
function fun(){
if ($('#wer').css('display') == 'none'){
$('#wer').slideDown("slow");
}
else{
$('#wer').slideUp("slow");
}
}

Тот slideUp, который не в функции fun работает, а тот, который в функции нет. Если заменить всё на hide и show, то всё работает, а так нет. В чём дело???
Лучший ответ
Ярослав Искусственный Интеллект (107837) 5 лет назад
Используй‎ ‎.is(':hidden') в условии.
Иван ФилатовУченик (185) 5 лет назад
Вот так: if ( $('#wer').is(':hidden') ){} ?
Ярослав Искусственный Интеллект (107837) Да. Просто если проблема с css('display'), то это ее решит. Еще учитывай что оба подхода работают только если проверять после завершения анимации (об этом четко написано в оф. справке jQuery). То есть, если анимация еще не завершена, будет возвращаться состояние на момент ее старта.
Иван ФилатовУченик (185) 5 лет назад
slideDown и slideUp всё равно не работают
Ярослав Искусственный Интеллект (107837) Тогда хз, в коде я не вижу проблем.
Остальные ответы
Сергей Жаков Мудрец (16208) 5 лет назад
есть jqery событие slideToggle- показывает если элемент скрыт и скрывает элемент если он виден
и также toggle

1) $('#wer').slideToggle(); // по умолчанию или .slideToggle( 1000 );
2) $('#wer').toggle();
Тима Ученик (236) 4 года назад
test<\a>

test<\div>

$(function() {

$('#t1').on('click', function(event) {

$('#hide1').slideUp(slow);

})
Похожие вопросы