![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 6.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
w panelu administracyjnym systemu który obecnie pisze, korzystam z formularzy i innych elementów strony posiadających "display=none" i pokazujących się dopiero po kliknięciu w jakiś link. Chciałbym żeby przy rozwinięciu którejś opcji, ta poprzednio otwarta się chowała. Jak to zrobić najlepiej? Możnaby chować wszystkie elementy posiadające zdefiniowane 'id' o obojętnej wartości (jak?). Tu pojawia się problem z planowanym wprowadzeniem CSS'a... wtedy chowała by mi się większość strony... jak to rozwiązać lepiej? Zaznaczam, że w javascripcie jestem zielony. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Ja to robię mniej więcej tak. Załóżmy takie menu:
<dd/> zawiera treść, są domyślnie ukryte. Teraz JS: Kod $('dl dt').click(function(e){ e.preventDefault(); $(this).parent() .find('dd:visible').slideUp() .end().next().slideDown(); } Przyznam, że ostatnio spodobały mi się konstrukcje bazujące na uchwytach zdarzeń (e), o tym poczytaj gdzieś, gdzie opisany jest DOM; IMHO to dużo bardziej eleganckie rozwiązanie niż zwykłe return false. Co dalej? Bieżący uchwyt, to kotwica rozwijająco-chowająca, czyli wyzwalacz zdarzeń. Po kolei: wskakuje na poziom rodzica i wyszukuje w nim wszystkie widoczne warstwy treści, po czym je zwija. Następnie wraca "do siebie" (za pomocą czego, to sprawdź w dokumentacji) i szuka swojego sąsiada, którego rozwija. [; Jak widzisz, całego potworka można zapisać w postaci wywoływania metod łańcuchowych obiektu jQuery i m.in. dlatego jest on taki za...jefajny. [; A jak to dostosować do Twojego kodu? Zadanie domowe. [; |
|
|
![]() ![]() |
![]() |
Aktualny czas: 11.10.2025 - 17:36 |