html - Multiple jQuery slidetoggles overlapping -
so new jquery , have found couple examples of slidetoggle of them overlapping. here code far:
jquery:
<script src="jquery-1.9.1.js"> </script> <script> $ (document).ready(function(){ $("#about").click(function(){ $("#aboutp").slidetoggle("medium"); }); }); </script> <script> $(document).ready(function () { $("#discounts").click(function () { $("#discountsp").slidetoggle("medium"); }); }); </script> <script> $ (document).ready(function(){ $("#news").click(function(){ $("#newsp").slidetoggle("medium"); }); }); </script> html:
<div id="about">about us</div> <div id="aboutp">this guys</div> <div id="discounts">discounts</div> <div id="discountsp">dicounts...blah blah blah blah blah</div> <div id="news">news</div> <div id="newsp">here news!!</div> (the p @ end of about, discounts, , news information or paragraph divs hidden , shown when others clicked)
css:
#about,#discounts,#news { position: fixed; top: 100px; background-color:lightblue; z-index: 11; } #about { right: 10px; padding-left: 50px; padding-right: 50px; padding-top: 5px; padding-bottom: 5px; text-align: center; } #discounts { right: 150px; padding-left: 50px; padding-right: 50px; padding-top: 5px; padding-bottom: 5px; text-align: center; } #news { right: 300px; padding-left: 50px; padding-right: 50px; padding-top: 5px; padding-bottom: 5px; text-align: center; } #newsp,#discountsp,#aboutp { top: 300px; right: 50px; position: fixed; display: none; }
see if looking for. can simplify quite lot of code providing classes, 1 click handler sufficient.
html
<div id="about" class="trigger">about us</div> <div id="aboutp" class="content">this bro</div> <div id="discounts" class="trigger">discounts</div> <div id="discountsp" class="content">dicounts...blah blah blah blah blah</div> <div id="news" class="trigger">news</div> <div id="newsp" class="content">here news!!</div> js
$(document).ready(function () { $('.trigger').click(function(){ var p = '#' + this.id + 'p'; //get id +p content's id toggle. $('.content').not(p).slideup(); //slideup not content. $(p).slidetoggle('medium'); //toggle display of click element's respective content. }); }); demo
a cleaner approach provide data-attribute has selector of target.
<div id="about" class="trigger" data-target="#aboutp">about us</div> <div id="aboutp" class="content">this bro</div> <div id="discounts" class="trigger" data-target="#discountsp">discounts</div> <div id="discountsp" class="content">dicounts...blah blah blah blah blah</div> <div id="news" class="trigger" data-target="#newsp">news</div> <div id="newsp" class="content">here news!!</div> $(document).ready(function () { $('.trigger').click(function(){ var p = $(this).data('target'); //get selector of target data. $('.content').not(p).slideup(); //slideup not content. $(p).slidetoggle('medium'); //toggle display of click element's respective content. }); });
Comments
Post a Comment