Использование jQuery для изменения порядка элементов списка и возврата их к значениям по умолчанию
Я строю адаптивное меню, которое масштабируется в зависимости от размера экрана. Мне нужно скрыть некоторые li и переставить другое, когда размер экрана изменится, а затем, когда размер экрана уменьшится до его первоначального размера, все элементы должны вернуться туда, где они были.
Я вроде как это работает, когда я изменяю размер окна, но я сражаюсь, чтобы вернуть его в исходное состояние
это мой код:
** HTML * * *
<nav id="main-nav">
<ul class="menu">
<li class="login-mobile mobile"><a class="login" href="">login</a></li>
<li class="signup-mobile mobile"><a class="signup" href="">sign up</a></li>
<li class="shop-mobile mobile"><a class="shop" href="">shop</a></li>
<li ><a class="home" href="">home</a></li>
<li ><a class="about" href="">about</a></li>
<li ><a class="promo" href="">promo</a>
<ul class="submenu">
<li><a href="">Apple - Free Wi-Fi P</a></li>
<li><a href="">Lanseria - FREE Wi-Fi </a></li>
<li><a href="">BlackBerry PlayBook</a></li>
</ul>
</li>
<li ><a class="services" href="">services</a></li>
<li ><a class="tools" href="">tools</a></li>
<li ><a class="converge" href="">converge</a></li>
<li ><a class="news" href="">news</a></li>
<li ><a class="contact" href="">contact</a></li>
<li class="darkblue_grad"><a class="help" href="">help</a></li>
</ul>
</nav>
** JQuery * *
function menuOrder () {
if ($(window).width() > 590) {
$("nav#main-nav ul.menu li.login-mobile, nav#main-nav ul.menu li.signup-mobile").hide();
var mobile = $("nav#main-nav ul.menu > li.shop-mobile");
mobile.appendTo(mobile.parent("ul.menu")).end();
} else{
$("nav#main-nav ul.menu li.login-mobile, nav#main-nav ul.menu li.signup-mobile").show();
}
}
$ (Документ).ready(функция () {
menuOrder();
$(window).resize(function() {
menuOrder();
});
});
1 ответ
Почему бы не спрятать innerHTML вашего меню в переменную во время загрузки, а затем просто записать его обратно в DOM, когда вам понадобится свежая копия. Не нужно ничего "отменять" таким образом.
РЕДАКТИРОВАТЬ:
захватить оригинальное меню (сделайте это прежде, чем манипулировать им, когда страница загружается):
var originalMenu = $('#main-nav').html()
напишите оригинальное меню:
$('#main-nav').html(originalMenu)