Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [jQuery] używanie toggle() dla kilku bloków o tym samym id
olokotampus
post 21.07.2014, 12:15:59
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 21.07.2014

Ostrzeżenie: (0%)
-----


Mam taki kod:

  1. <div id="all">
  2.  
  3. <div id="kom">
  4. <div id="pokaz_odpowiedzi">pokaż odpowiedzi:</div>
  5. <div id="odpowiedzi">...</div>
  6. </div>
  7.  
  8. <div id="kom">
  9. <div id="pokaz_odpowiedzi">pokaż odpowiedzi:</div>
  10. <div id="odpowiedzi">...</div>
  11. </div>
  12.  
  13. <div id="kom">
  14. <div id="pokaz_odpowiedzi">pokaż odpowiedzi:</div>
  15. <div id="odpowiedzi">...</div>
  16. </div>
  17.  
  18. </div>


Jak zrobić w jQuery, żeby po kliknięciu na blok o id pokaz_odpowiedzi pokazywało tylko odpowiedzi w danym (nadrzędnym) bloku kom? Da się to w ogóle zrobić na tym samym id (kom)?
Blok all potrzebuję, bo rozwijam w ten sposób komentarze - $("#all").children("#kom").slideToggle(); - więc raczej nie wchodzi w grę zmiana id kom na inne, z numerami umożliwiającymi identyfikację poszczególnych z nich. Jak robię wewnątrz kom bloki numeryczne, to wtedy mi pokazuje wszystko, zamiast ukrywać przy załadowaniu się strony...

Tu strona z kodem w użyciu, jeśli komuś się chce przez to przekopywać:
http://wwwebsites.pl/yamaneko/new/?post=11
Go to the top of the page
+Quote Post
Turson
post 21.07.2014, 12:17:22
Post #2





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

Ostrzeżenie: (0%)
-----


Masz podstawowy błąd - ID musi być unikalne
Go to the top of the page
+Quote Post
johny_s
post 21.07.2014, 12:18:11
Post #3





Grupa: Zarejestrowani
Postów: 594
Pomógł: 122
Dołączył: 17.07.2005
Skąd: P-na

Ostrzeżenie: (0%)
-----


na poczętek poprwa kod, id musi być unikalne na stronie
Go to the top of the page
+Quote Post
olokotampus
post 21.07.2014, 12:23:17
Post #4





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 21.07.2014

Ostrzeżenie: (0%)
-----


No dobra, poprawiam kod i każdy blok kom ma swój numer wygenerowany jeszcze w php: np. kom1, kom3, kom7 itd. Jak wtedy ukryć wszystkie te kom_ naraz? Statycznie nie da rady - numery mogą być nie po kolei i nie wiem, ile będzie bloków.
Da się przypisać dwa różne id jednemu blokowi?
Go to the top of the page
+Quote Post
lukasz_os
post 21.07.2014, 12:26:45
Post #5





Grupa: Zarejestrowani
Postów: 203
Pomógł: 55
Dołączył: 23.11.2008
Skąd: UKF

Ostrzeżenie: (0%)
-----


Ale po co tym elementom nadajesz id? Nadaj im odpowienie klasy i wystarczy. Potem za pomoca funkcji .next() otwórz sasiedni div o klasie 'odpowiedzi'.

tu masz fiddle: http://jsfiddle.net/lukasz_os/zTq5Q/

Ten post edytował lukasz_os 21.07.2014, 12:35:26


--------------------
Pomagam jeśli mam czas oraz jak się na tym znam :D
Go to the top of the page
+Quote Post
Pyton_000
post 21.07.2014, 13:05:59
Post #6





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


  1. $('div[id^="kom_"]).toggle()
Go to the top of the page
+Quote Post
olokotampus
post 21.07.2014, 13:33:44
Post #7





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 21.07.2014

Ostrzeżenie: (0%)
-----


Dzięki bardzo, wszystko powoli zaczyna działać i mnie słuchać. :3 Wystarczy użyć tej funkcji next() i klas zamiast powtarzających się id. Pomocna ta strona:

http://ferrante.pl/frontend/javascript/jquery-to-latwe-3/
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 13:59