Событие Jquery click приводит к исчезновению кнопки
Я собираю упрощенную структуру навигации вне холста для мобильной версии сайта.
Мне удалось заставить все работать, кроме того, что когда кнопка нажимается, чтобы содержимое скользило по странице, моя кнопка исчезает.
Я полагаю, что в моем синтаксисе должна быть простая ошибка, которая влияет на кнопку и DIv одновременно. Не уверен, что, хотя. Вот что у меня есть на Jfiddle: http://jsfiddle.net/Ginmau/YUgVu/
Вот HTML-код:
<body>
<div class="container">
<nav>
<ul>
<li>Link 1</li>
<li>Link 2</li>
<li>Link 3</li>
</ul>
</nav>
<div class="main_content">
<header>
<a class="header-btn-menu">menu</a>
<h1>ht-design</h1>
<a class="header-btn-sidebar">sidebar</a>
</header>
<section>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi euismod dui non nulla ullamcorper a vulputate turpis bibendum. Praesent interdum tortor sit amet dui pretium facilisis. Quisque sed ante dui, ut vehicula dolor. Mauris ultricies lorem eu diam aliquet nec commodo quam ullamcorper. Nullam diam augue, sollicitudin non laoreet ac, varius non massa. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Sed viverra porttitor odio, sed fringilla ipsum aliquet ac. Vestibulum congue iaculis justo, blandit porta lectus facilisis ut. Donec in purus metus, non porta est. Quisque et erat turpis. Etiam egestas nisl cursus ante porta pulvinar. Nulla ac purus eget dolor iaculis lobortis.
Vivamus ac lorem non libero dapibus pellentesque id vel dui. Cras imperdiet commodo magna, vel dictum leo commodo sed. Donec pharetra lacus ligula, et condimentum dolor. Aenean condimentum varius tortor, in interdum tortor egestas non. Mauris interdum, metus a pretium imperdiet, sapien odio vestibulum ante, eget eleifend sem felis quis dolor. Etiam congue posuere magna. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Fusce suscipit neque a tortor tincidunt adipiscing. Suspendisse aliquet dui et nunc ultrices id imperdiet massa aliquam. Donec mi sem, facilisis nec consequat eget, sollicitudin at ipsum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce malesuada tristique leo, a mollis lacus fringilla a.
Curabitur aliquam consequat neque eget ullamcorper. Donec vitae sodales mi. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nullam molestie aliquet felis in sodales. Ut fringilla elementum metus, non venenatis ipsum consequat quis. Phasellus malesuada ipsum sed ipsum accumsan a laoreet urna vehicula. Nam pulvinar nisl ac eros dictum ornare. Nulla scelerisque tincidunt nulla, quis tempor leo porta non.
Nullam cursus felis in neque faucibus hendrerit. Sed malesuada diam ut urna iaculis et laoreet sem viverra. Integer neque nibh, gravida vel vulputate nec, ultricies eu eros. Vivamus facilisis posuere placerat. Suspendisse congue lacus ac tellus laoreet iaculis. Nulla facilisi. Etiam sed velit ut lacus eleifend condimentum ac et mauris. Donec condimentum elementum nisl id elementum. Aenean imperdiet porta suscipit. Donec a ullamcorper dui. Morbi volutpat, magna quis tristique pretium, risus nisl aliquam sapien, dignissim accumsan erat tortor aliquam mauris. Quisque consectetur sapien et massa egestas bibendum. Phasellus dapibus nisi a lorem posuere interdum. Nam sit amet tortor vel risus mollis tempor at vel lorem. Vestibulum at dignissim risus.
Nulla sed nisi at sem tristique porta a sit amet quam. Morbi porta scelerisque orci sed dignissim. Mauris a felis non ipsum fermentum lacinia sit amet id odio. Sed non dolor ipsum, at molestie purus. Ut diam justo, vulputate ut posuere non, bibendum id lacus. Sed sem sapien, hendrerit non hendrerit eu, mattis vitae velit. Vivamus nec tellus sit amet massa mollis pulvinar id sed lacus. Integer fermentum rutrum dolor, et dapibus neque varius ac. Nulla facilisi.
</section>
<footer>
</footer>
</div>
<aside>
<ul>
<li>Link 1</li>
<li>Link 2</li>
<li>Link 3</li>
</ul>
</aside>
CSS:
html, body {
height:100%;
}
.container {
height:100%;
width:100%;
position:relative;
left: 0;
right:0;
}
.slideright {
left: 240px;
}
.slideleft {
right: 240px;
}
.header-btn-menu, .header-btn-sidebar {
display:none;
}
nav, .main_content, aside {
height: 100%;
float:left;
}
nav {
width: 20%;
background-color: #09C;
}
.main_content {
width: 60%;
position:relative;
}
aside {
width: 20%;
background-color: #09C;
}
@media screen and (max-width: 980px) {
nav {
position:fixed;
left:-240px;
top:0;
z-index:1000;
width: 240px;
height:100%;
}
aside {
width: 25%;
}
.main_content {
width: 75%;
}
.header-btn-menu {
display:block;
}
header a {
width: 100px;
height: 25px;
display:block;
float:left;
}
}
@media screen and (max-width: 650px) {
aside {
position:fixed;
right:-240px;
top:0;
z-index:1000;
width: 240px;
height:100%;
}
.main_content {
width: 100%;
}
.header-btn-sidebar {
display:block;
}
}
И последнее, но не менее важное, JavaScript:
$(document).ready(function () {
$(".header-btn-menu").click(function () {
$(this).toggle(function() {
$("nav").animate({left: '0px'}, "slow");
$(".main_content").animate({left: '240px'}, "slow");
});
});
$(".header-btn-sidebar").click(function () {
$(this).toggle(function() {
$("aside").animate({right: '0px'}, "slow");
$(".main_content").animate({right: '240px'}, "slow");
});
});
});
2 ответа
Попробуй вот так
<header>
<a class="header-btn-menu">menu</a>
<h1>ht-design</h1>
<a class="header-btn-sidebar">sidebar</a>
</header>
<div class="main_content">
<section>
</section>
<footer>
</footer>
</div>
вы переключаете main_content, которое содержит вашу кнопку, поэтому ваша кнопка будет переключаться.... поместите ваши кнопки вне переключенного div и затем попробуйте
$(this).toggle(function() {...
Также поместите кнопки вне основного контента.
<header>
<a class="header-btn-menu">menu</a>
<h1>ht-design</h1>
<a class="header-btn-sidebar">sidebar</a>
</header>
<div class="main_content">
<section>
</section>
<footer>
</footer>
</div>
Нажимает кнопку, вынимай и все должно работать.
$(".header-btn-menu").click(function () {
$("nav").animate({left: '0px'}, "slow");
$(".main_content").animate({left: '240px'}, "slow");
});
$(".header-btn-sidebar").click(function () {
$("aside").animate({right: '0px'}, "slow");
$(".main_content").animate({right: '240px'}, "slow");
});