![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 29.12.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam problem z rozwijanymi treściami. Problem polega na tym że gdy mam wyświetlone powyżej jednej wiadomości to mogę jedynie pierwszą rozwinąć. Z innymi nie da się nic zrobić. Oto mój kod dla dwóch wiadomości:
Z góry dzięki za pomoc ![]() |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 142 Pomógł: 28 Dołączył: 7.04.2008 Ostrzeżenie: (0%) ![]() ![]() |
masz dla kilku elementów to samo ID? użyj klasy i this
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
tomm ma rację, ale postaram się bardziej rozjaśnić. Specyfikacja W3C dotycząca języka (X)HTML mówi, że w dokumencie może istnieć tylko jeden element o danym identyfikatorze (id). Jeżeli będziemy mieć tych elementów więcej, to JavaScript i tak wybierze pierwszy, ponieważ pozostałe dla JS nie istnieją. Rozwiązaniem problemu jest wykorzystanie klas, dla elementów, które mają się powtarzać i wyglądać tak samo.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 29.12.2006 Ostrzeżenie: (0%) ![]() ![]() |
Po zastosowaniu class teraz otwierają się wszystkie naraz. A co teraz zrobić żeby otwierały się pojedynczo? Z góry dzięki za pomoc
![]()
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Ja bym zamiast bawić się w kilka klas z wszystkim zrobił jedną na clicku i użył this by pokazać o jaki konkretnie element chodzi.
-------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 29.12.2006 Ostrzeżenie: (0%) ![]() ![]() |
po zamianie na $(this + " .caja") to teraz nic się nie otwiera
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Sorki, miałem w głowie jeszcze inny kod. Tak to rzeczywiście nie zadziała. Trzeba trochę inaczej to zorganizować.
i do tego wspomniane linie: Kod $($(this).parent() + " .caja") Powinno działać.
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 29.12.2006 Ostrzeżenie: (0%) ![]() ![]() |
czy mógłbyś to wstawić w ten mój kod, bo jak ja wstawiam to coś mi nie działa to co podałeś
![]() Kod teraz wygląda następująco:
Ten post edytował seniu123 6.04.2010, 13:21:44 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Funkcja parent() działa jednak trochę inaczej, ale przy jej pomocy możemy uzyskać właściwy efekt. Kod:
EDIT: klasa jest wykorzystywana tylko do nadania odpowiedniego formatowania elementu div i w sumie nie musi jej być. Ten post edytował mortus 6.04.2010, 13:27:11 |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 29.12.2006 Ostrzeżenie: (0%) ![]() ![]() |
mortus Wielkie dzięki za pomoc!
![]() ![]() Mam jeszcze jedno pytanie ![]() Co zrobić żeby jak otworzy się jedna wiadomość i kliknię się w drugą żeby pierwsza się zamkneła? ![]() Ten post edytował seniu123 6.04.2010, 13:32:37 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Kod $(".mostrar").click(function(event){
event.preventDefault(); if (!$(this).parent().find(".caja").hasClass("active")) { $(".active").slideUp(); $(".active").removeClass("active"); } $(this).parent().find(".caja").addClass("active"); $(this).parent().find(".caja").slideToggle(); }); |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 29.12.2006 Ostrzeżenie: (0%) ![]() ![]() |
Znowu jest problem....
Po przekształceniu kodu na php pojawił się problem rozsuwaniem tych wiadomości... Gdy jest parzysta liczba to nie otwierają się (tzn. otworzą się i zamkną), a gdy jest nie parzysta liczba wiadomości to otworzą się (tzn. kilka razy dana wiadomość otworzy się i zamknie). Nie mam zielonego pojęcia co robić żeby normalnie się otwierały i zamykały... Oto część mojego kodu:
Zauważyłem jeszcze że ten div wysuwa się i wsuwa w zależności od ilości wyświetlanych wiadomości. np. Gdy jest 6 wiadomości to zrobi 3 razy cały cykl (rozwinie się i zwinie). Ten post edytował seniu123 6.04.2010, 23:07:09 |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Źle to robisz. Zauważ, że kilka razy w pętli while umieszczasz skrypt, zarówno ten do rozwijania div-ów, jak i jakiś audio-plajer.js. Prawidłowo powinno to wyglądać tak
Jeśli sama treść znajduje się w innym pliku niż layout strony, to nie ma to mniejszego znaczenia. Skrypty js umieszczamy wtedy pomiędzy znacznikami <head> i </head> w pliku z layoutem, a treść możemy dołączać za pomocą include. |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 29.12.2006 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki!!!! Wszystko działa teraz w najlepszym porządku
![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 09:47 |