JQuery
$(document).ready(function() {
$("a.menu").click(function() {
$("#mp-menu").show();
});
});
HTML-код
<a class="icon icon-display" class ="menu" href="#">Test</a>
Всем привет. Код выше, который я использую, чтобы открыть меню div со стороны браузера. То, что я хочу, - это когда меню вышло после того, как оно было активировано щелчком, он должен оставаться пристыкованным к боковой стороне экрана, даже если щелкнута другая ссылка на странице и перейдет на другую страницу. Как это может быть сделано?
для этого он либо использует 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(); } });
Когда меню открыто или закрыто, установите файл cookie, указывающий состояние меню. На странице загрузки любой страницы проверьте файл cookie и установите состояние меню.
Это будет использовать 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);