webForumDet fria alternativet
Logga in / Bli medlem

toggle lager med jquery, visa endast senast klickade

JavaScript

2 svar · 547 visningar · startad av kolas

Medlem sedan mars 2001142 inlägg
Frågan#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"

263 ms totalt · 4 externa anrop · v20260731065814-full.5386d3bf
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)