@Toster777

Как сделать кнопку «Закрыть меню»?

Имеется такой код для открывающегося меню:
$('div.menu').prepend('<div id="menu-icon">Открыть меню</div>');
    $("#menu-icon").on("click", function(){
    $("ul.menu").fadeToggle();
 });


Как сделать так, чтобы кнопка "menu-icon" при открытии меню сменялась на "Закрыть меню"?
  • Вопрос задан
  • 122 просмотра
Решения вопроса 1
Vlad_IT
@Vlad_IT Куратор тега JavaScript
Front-end разработчик
$('div.menu').prepend('<div id="menu-icon">Открыть меню</div>');
    
    $("#menu-icon").on("click", function(){
    $("ul.menu").fadeToggle();
     
     $("ul.menu").toggleClass("expanded");
     if ($("ul.menu").hasClass("expanded")) {
        $("ul.menu").html("Закрыть меню");
     } else {
        $("ul.menu").html("Открыть меню");
     }
 });

Ну и поменяйте местами тексты если будет отображаться наоборот.
UPD: Поменял немного код, вместо $this поставил $("ul.menu").
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
slo_nik
@slo_nik
Добрый день.
$("#menu-icon").on("click", function(){
    $("ul.menu").fadeToggle();
    $(this).text('Закрыть меню.')
 });
Ответ написан
Комментировать
@levchak0910
answer.correct ? press({correct: true}) : next()
let open = "Открыть меню";
let close = "Закрыть меню";
$('div.menu').prepend(`<div id="menu-icon">${open}</div>`);
$("#menu-icon").on("click", function() {
    $("ul.menu").fadeToggle();
    $(this).text((i, text) => text == open ? close : open);
});
Ответ написан
Комментировать
.toggleClass()
Менять кнопке класс как вариант по клику, как вариант
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы