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

0

JQuery

$(document).ready(function() {
    $("a.menu").click(function() {
    $("#mp-menu").show();
    });
});

HTML-код

<a class="icon icon-display" class ="menu" href="#">Test</a>

Всем привет. Код выше, который я использую, чтобы открыть меню div со стороны браузера. То, что я хочу, - это когда меню вышло после того, как оно было активировано щелчком, он должен оставаться пристыкованным к боковой стороне экрана, даже если щелкнута другая ссылка на странице и перейдет на другую страницу. Как это может быть сделано?

Теги:

3 ответа

0

для этого он либо использует Iframe, либо асинхронно генерирует контент. Таким образом, даже если вы нажмете ссылку на контент, она изменит только контент, а не всю страницу, недостатком является URL-адрес, но можно устранить с помощью history.pushState или replaceState и манипулировать onload для URL направленного доступа.

Если вы действительно настаиваете на своей цели и способ, вы можете установить межстраничный флаг для отслеживания события на разных страницах, таких как файлы cookie и сеанс. Я рекомендую использовать файлы cookie. Используйте jQuery cookie для удобства.

    $(document).ready(function() {
        var flag = $.cookie('flag');
        $("a.menu").click(function() {
            // this is for toggling the menu bar
            if( !flag ) {
            // When flag is not set, when button is clicked show menu
                $("#mp-menu").show();
                $.cookie('flag', true);
            } else {
                // otherwise, hide it
                $("#mp-menu").hide();
                $.removeCookie('flag');
            }
        });
        if( flag ) {
            // remove cookie, so it will be set when the button is clicked
            // since menu will only be shown once the flag is not set
            // so it is important to remove it
            $.removeCookie('flag');
            $("a.menu").click();
        }
    });
    
  • 0
    Спасибо за ваш вклад. Я думаю, как вы объяснили это именно так, как я хочу реализовать страницы, где только содержимое страниц изменяется путем использования включаемых файлов, в основном разрезая содержимое страниц на разделы.
  • 0
    затем создайте свой веб-сайт следующим образом: заголовок, ссылки, iframe (для контента), нижний колонтитул. присвойте свой идентификатор iframe и поместите target = "<id of iframe>" в ссылках вашего меню (за исключением ссылок внутри содержимого, поскольку они будут автоматически ориентированы на iframe, примените это только к внешним ссылкам, таким как заголовок , нижний колонтитул и ссылки разделы)
0

Когда меню открыто или закрыто, установите файл cookie, указывающий состояние меню. На странице загрузки любой страницы проверьте файл cookie и установите состояние меню.

0

Это будет использовать localStorage для сохранения состояния меню, но он не обрабатывает его закрытие, поскольку вы не указали, какие причины это произойдет...

$(document).ready(function() {
    $("a.menu").click(function() {
        $("#mp-menu").show();
        localStorage.setItem("show-mp-menu", true);
    });
    if (localStorage.getItem("show-mp-menu")) {
        $("#mp-menu").show();
    }
});

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

$("#mp-menu").hide();
localStorage.setItem("show-mp-menu", false);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню