toggle lager med jquery, visa endast senast klickade

JavaScript

2 svar · 555 visningar · startad av kolas

Medlem sedan mars 2001142 inlägg
Trådstart#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?

Medlem 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>
Medlem sedan feb. 20002 300 inlägg
#3

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

259 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)