$('btn').click(function() {
$('Menu').slideDown();
}, function() {
$('btn').click(function(){
$('Menu').slideUp();
});
});
Все, что я хочу достичь, - это когда btn щелкнет меню slideDown. при повторном нажатии!
Во-первых, кажется, что вы неправильно выбираете элементы btn
и Menu
. Вам нужно указать, являются ли они классами или идентификаторами.
Например, используя $('.btn')
или $('#btn')
. То же самое нужно сделать для Menu
.
Чтобы упростить код, попробуйте использовать slideToggle()
.
$('btn').click(function() {
$('Menu').slideToggle('slow');
});
ОБНОВИТЬ
Просто для ударов, если вы предпочитаете использовать как slideUp
и события slideUp
slideDown
вашего комментария, вы можете достичь этого, используя функциональность .is(':visible')
:
$('#btn').click(function() {
if ($('#menu').is(":visible")) {
$('#menu').slideUp('slow');
}
else {
$('#menu').slideDown('slow');
}
});
Что такое btn
и Menu
, они являются идентификаторами или классами? Или другое?
Чтобы показать/скрыть элементы путем переключения, существует метод slideToggle
.
Ref:
Метод.slideToggle() анимирует высоту согласованных элементов. Это приводит к тому, что нижние части страницы скользят вверх или вниз, появляясь, чтобы выявлять или скрывать элементы. Если элемент изначально отображается, он будет скрыт; если он скрыт, это будет показано. Свойство отображения сохраняется и восстанавливается по мере необходимости. Если элемент имеет отображаемое значение inline, то он скрыт и отображается, он снова будет отображаться в строке. Когда высота достигает 0 после скрывающей анимации, свойство стиля отображения имеет значение none, чтобы гарантировать, что элемент больше не влияет на макет страницы.
Длительность дается в миллисекундах; более высокие значения указывают на более медленную анимацию, а не на более быстрые. "Быстрые" и "медленные" строки могут быть поданы для указания длительности 200 и 600 миллисекунд соответственно.
Код:
$('.btn').click(function() {
$('#menu').slideToggle('slow');
});