javascript - jquery Toggling between sidebars -
i want create simple sidebar. have 2 links, clicking on them expand sidebar different div>. clicking again collapse it.
how can make, clicking on link2, expanded sidebar link1, change div , not collapse sidebar? panel in http://www.w3schools.com/ (click tutorials/references/examples)
#wrapper { padding-left: 0; } #wrapper.toggled { padding-left: 220px; } #wrapper-link1 { display:none; } $('[data-toggle="link1"]').click(function () { $('#wrapper').toggleclass('toggled'); $('#wrapper-link2').hide(); $('#wrapper-link1').show(); });
what you're attempting known tabbed content. in specific instance presentation little different implementation same/similar.
what want bind same click handler links show own content div. handler hide shown div , show selected content div.
html
<ul class="sidebar-toggler"> <li><a href="#" data-target="a">link a</a></li> <li><a href="#" data-target="b">link b</a></li> </ul> <aside class="sidebar-content"> <div data-content="a"> content <strong>link a</strong>. </div> <div data-content="b"> content <strong>link b</strong>. </div> </aside>
css
.sidebar-content [data-content] { display: none; }
js
var $sidebar_content = $( '.sidebar-content' ); $( '.sidebar-toggler' ).on( 'click', '[data-target]', function ( e ) { var target = $( ).data( 'target' ); $sidebar_content.find( '[data-content]' ).hide(); $sidebar_content.find( '[data-content="' + target + '"]' ).show(); } );
demo jsfiddle.
typically when want hide 1 of these tabbed content regions simplest thing hide of them instead of searching 1 open , closing it.
$sidebar_content.find( '[data-content]' ).hide();
then open selected content div. few different ways use data-
attributes. data-target
points data-content
same value (which can anything).
var target = $( ).data( 'target' ); $sidebar_content.find( '[data-content="' + target + '"]' ).show();
note: when using jquery , data
object, jquery parse data-
attributes , store values there. that's data( 'target' )
comes from. see jquery.data() more details.
Comments
Post a Comment