Friday 15 June 2012

jquery - How to make my menu show only one div at a time? -



jquery - How to make my menu show only one div at a time? -

this works fine, when 1 div content shown, if click show div content, overrides first div. want show 1 div @ time. can help me? give thanks in advance.

html:

<div class="clicked"> <p>block 1</p> </div> <div class="content" style="display:block;"> <p>1nam liber tempor cum soluta nobis eleifend alternative congue nihil imperdiet doming id quod mazim placerat facer possim assum.</p> <p>claritas est etiam processus dynamicus, qui sequitur mutationem consuetudium lectorum.<br/><br/> mirum est notare quam littera gothica, quam nunc putamus parum claram, anteposuerit litterarum formas humanitatis per seacula quarta decima et quinta decima. eodem modo typi, qui nunc nobis videntur parum clari, fiant sollemnes in futurum.</p> </div> <div class="clickable"> <p>block 2</p> </div> <div class="content"> <p>2nam liber tempor cum soluta nobis eleifend alternative congue nihil imperdiet doming id quod mazim placerat facer possim assum.</p> <p>claritas est etiam processus dynamicus, qui sequitur mutationem consuetudium lectorum.<br/><br/> mirum est notare quam littera gothica, quam nunc putamus parum claram, anteposuerit litterarum formas humanitatis per seacula quarta decima et quinta decima. eodem modo typi, qui nunc nobis videntur parum clari, fiant sollemnes in futurum.</p> </div> <div class="clickable"> <p>block 3</p> </div> <div class="content"> <p>3nam liber tempor cum soluta nobis eleifend alternative congue nihil imperdiet doming id quod mazim placerat facer possim assum.</p> <p>claritas est etiam processus dynamicus, qui sequitur mutationem consuetudium lectorum.<br/><br/> mirum est notare quam littera gothica, quam nunc putamus parum claram, anteposuerit litterarum formas humanitatis per seacula quarta decima et quinta decima. eodem modo typi, qui nunc nobis videntur parum clari, fiant sollemnes in futurum.</p> </div>

jquery:

$(window).load(function() { $('.clicked, .clickable').on('click', function(){ if ($(this).hasclass('clickable')){ $(this).next().show(); $(this).removeclass('clickable').addclass('clicked'); } else { $(this).next().hide(); $(this).removeclass('clicked').addclass('clickable'); } }); });

just hide .content divs on click before showing 1 clicked on:

$(document).ready(function() { $('.clicked, .clickable').on('click', function(){ if ($(this).hasclass('clickable')){ $('.content').hide(); //hide content divs before showing clicked 1 $(this).next().show(); $(this).removeclass('clickable').addclass('clicked'); } else { $(this).next().hide(); $(this).removeclass('clicked').addclass('clickable'); } }); }); jsfiddle

jquery html

No comments:

Post a Comment