WN

WN (https://www.wn.se/forum/index.php)
-   Klientsidans teknologier, design och grafik (https://www.wn.se/forum/forumdisplay.php?f=12)
-   -   Allt utom detta (motsvarighet till $("this")) (https://www.wn.se/forum/showthread.php?t=1055948)

jonssondesign 2012-12-03 01:56

Allt utom detta (motsvarighet till $("this"))
 
Hejsan!

Jag undrar om det finns någon typ av motsvarighet till $("this")?

Alltså, som nuläget så har jag gjort som så att, när jag klickar på en text, så kommer en dropdown fram. Klickar jag på den igen så försvinner den. Men sen har jag mer text med andra dropdowns. Så jag får skriva en hel drös med funktioner för varje text. Att, klickar jag på "den där" stängs "den där", och klickar jag på "den där" så stängs även "den där", osv osv..

Känns som om det borde finnas ett lite bättre alternativ? :P

Tänkt er en meny, och istället för hover, så har man klick event. Och klickar man på en text och har en annans text dropdowns öppen, så ska den stängas samtidigt som den texts dropdown som man precis klickat på skall visas.

Förstår ni? :)

Clarence 2012-12-03 08:21

Bäst är att du håller koll på vilken som öppnats, och stänger den när en ny öppnas.

Enklast är att du lägger en klass på alla dropdowns och stänger alla med klassen innan du visar en.

secag 2012-12-03 17:06

Du kan också kolla vilka som är nere, alltså droppade.

jonssondesign 2012-12-04 00:23

Berätta gärna med kod.

yakuzaemme 2012-12-04 01:38

Om du har en HTML-struktur som denna:
Kod:

<div class="alldropdowns">
        <ul>
                <li class="dropdown1"> <span class="ddclick">Dropdown1</span>
                        <ul style="display:none;">
                                                               
                        </ul>
                </li>
                <li class="dropdown2"> <span class="ddclick">Dropdown2</span>
                        <ul style="display:none;">
                                                               
                        </ul>
                                               
                </li>
                <li class="dropdown3"> <span class="ddclick">Dropdown3</span>
                      <ul style="display:none;">
                                                               
                        </ul>
                </li>
        </ul>
</div>


Så kan du lösa det såhär:

Kod:

$('.ddclick').click(function() {
  var mainparent = $(".alldropdowns");
  var dropdown = $(this).parent().find("ul");
  var showthis = dropdown.is(':hidden');
             
  mainparent.find('ul > li > ul').hide();
  if(showthis) { dropdown.fadeToggle(); }
});

Berätta gärna om den fungerade!

jonssondesign 2012-12-04 01:41

Tack, tusen tack! Fungerade utan problem! Och förvånade lätt kod :O

Du är bäst yakuz!!


Alla tider är GMT +2. Klockan är nu 04:47.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson