webForumDet fria alternativet

toggle lager med jquery, visa endast senast klickade

2 svar · 545 visningar · startad av kolas

kolasMedlem sedan mars 2001142 inlägg
#1

Jag tänkte det verkade smart att använda Jquery för att visa och dölja lager i en meny, men jag skulle vilja att om man har klickat fram ett lager så ska det bara vara det som är synligt. som det är nu så måste man klicka på samma för att släcka det annars ligger alla synliga som man klickat fram.

Men jag vet inte i vilken ände jag ska börja i.

<script type="text/javascript">

    $(function() {
        $('a#m1toggle').click(function() {
            $('#m1').toggle();
        });
        $('a#m2toggle').click(function() {
            $('#m2').toggle();
        });
        $('a#m3toggle').click(function() {
            $('#m3').toggle();
        });  
          
    });
</script>

    <li><a href="#" id="m1toggle">sommar</a>
    <div id="m1">
    <a href="länk">juni</a>
	<a href="länk">juli</a>    
    </div></li>

    
    <li><a href="#" id="m2toggle">vinter</a>
    <div id="m2">
    <a href="länk">november</a>
	<a href="länk">december</a>    
    </div></li>
    
    <li><a href="#" id="m3toggle">väder</a>
    <div id="m3">
    <a href="länk">regn</a>
	<a href="länk">sol</a>    
    </div></li>

Kan jag inte använda toggle för att uppnå detta?

kolasMedlem sedan mars 2001142 inlägg
#2

Om det nu var någon som förstod vad jag var ute efter och undrar samma...
Jag löste det så här istället:

CSS:

.content {
    display: none;
}

jQuery:

$(function() {
    $('.action').click(function() {
        var content = $(this).find('~ .content');
        $(this).parent().parent().find('.content').not(content).hide();
        content.toggle();
    });
});

HTML:

<ul>
    <li>
        <a href="#" class="action">summer</a>
        <div class="content">
            <a href="link">june</a>
            <a href="link">july</a>
        </div>
    </li>
    <li>
        <a href="#" class="action">winter</a>
        <div class="content">
            <a href="link">november</a>
            <a href="link">december</a>
        </div>
    </li>
    <li>
        <a href="#" class="action">weather</a>
        <div class="content">
            <a href="link">rain</a>
            <a href="link">sun</a>
        </div>
    </li>
</ul>
PhorpherMedlem sedan feb. 20002 300 inlägg
#3

Det låter som om du vill ha samma funktionalitet som i en "accordion"

128 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)