Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [jQuery]To samo ID
piotrooo89
post
Post #1


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




mam taką tabelke:

  1. <tr><th>tytul</th></tr>
  2. <tr>
  3. <td>text</td>
  4. <td>text</td>
  5. <td>text</td>
  6. </tr>
  7. <tr><th>tytul2</th></tr>
  8. <tr>
  9. <td>text2</td>
  10. <td>text2</td>
  11. <td>text2</td>
  12. </tr>


i teraz chciałbym zapytać jak zrobić ze id thead i tbody jest równe, tzn. mam pierwsze thead które ma id 1 tbody które ma również id 1 kolejne thead ma id 2 i tbody kolejne ma id 2 itd. ponieważ korzystam z skryptu (http://mediaformations.com/accordion-tables-with-jquery/) ukrywającego wiersze ukrywa mi wszystkie wiersze które mam mam w tbody a ja chce tylko jedna grupę. no i jeszcze jedno jak domyślnie zrobić aby były te wiersze zwinięte, tzn po załadowaniu pokazuje tylko nagłówki.

Ten post edytował piotrooo89 10.11.2009, 10:08:13


--------------------
Go to the top of the page
+Quote Post
askone
post
Post #2





Grupa: Zarejestrowani
Postów: 654
Pomógł: 121
Dołączył: 27.10.2007
Skąd: Poznań, Łódź

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


Hej

Wydaje mi się, iż błedem jest definiowanie w ramach jednej tabeli kilku sekcji <thead>. Zgodnie z dokumentacją w tabeli może być 1 lub wiele elementów <tbody>, ale nie ma mowy o sekcjach <thead> i <tfoot>. Według mnie w jednej tabeli może być tylko jeden <thead> i jeden <tfoot>...


--------------------
Kliknij jeśli moja odpowiedź Ci pomogła.
askone.pl
Go to the top of the page
+Quote Post
piotrooo89
post
Post #3


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




wiedziałem ze ktoś z czymś takim wyjedzie smile.gif kurcze zadałem oczywisty problem, nie zapytałem czy to co napisałem jest zgodne ze standardami tylko jak zrobić ukrywanie. @fly474 zaznajomiony jestem z tymi rzeczami, jednak mam tutaj zupełnie iny problem smile.gif


--------------------
Go to the top of the page
+Quote Post
wookieb
post
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Nie możesz mieć w dokumencie dwóch elementów o tym samym id. Jak już to lepiej powrzucać tabel w divy i tak robić accordion. Druga opcja to użycie klas.


--------------------
Go to the top of the page
+Quote Post
thek
post
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




Mi się widzi, że lepiej byłoby to samemu w JS napisać i w zdarzeniu onclick dla thead, zmieniać display tbody odpowiedniego. Problemem pewnym może być wybranie elementu do ukrycia. Zrezygnowałbym więc z nadawania id sekcji thead tabel i zostawiłbym ją jedynie dla tbody. Domyślnie wtedy mógłbym stronę uruchamiać z display wyłączonym we wszystkich tbody i dopiero kliknięcie na odpowiednim thead wyświetliło by mi odpowiedni. A napisanie funkcji w stylu displaying(tbodyId) zmieniającą style dla nich to dla Ciebie zapewne prościzna. Myślę, że w większości przypadków najprostsze rozwiązania są najlepsze.

EDIT: bym zapomniał, o użyciu JQuery by efekt animacji był smile.gif

Ten post edytował thek 10.11.2009, 10:43:35


--------------------
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
Go to the top of the page
+Quote Post
piotrooo89
post
Post #6


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




może macie racje ze lepiej to zrobić w czystym JS. ale jako że jestem człowiekiem dociekliwym będę pytał dalej,

jeśli na sztywno wpisze id:

  1. $(this) .parents('table.list') .children('tbody#0') .toggle();


to chowa się tylko jedna grupa czyli tak jak ma być.

jak teraz przypisać id klikniętego th?

  1. $(document).ready(function(){
  2.  
  3. $('table.list th') .click(
  4. function() {
  5. $(this) .parents('table.list') .children('tbody#'+$(this).attr('id')) .toggle();
  6. }
  7. )
  8. });

robię to tak no i nie bardzo chce zadziałać. co jest nie tak?

ok już mam znalazłem błąd... dopisywałem to do thead a nie do th...

Ten post edytował piotrooo89 10.11.2009, 10:51:58


--------------------
Go to the top of the page
+Quote Post
seth-kk
post
Post #7





Grupa: Zarejestrowani
Postów: 444
Pomógł: 79
Dołączył: 26.05.2009

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


pewnie lepiej byloby podazac wskazowkami wookieb ale jesli bedziesz sie parentowal do do <thead /> zamiast <table /> i uzyjesz next() to tez powinno dzialac

//update
ups - dopiero teraz zaowazylem update piotrooo89

Ten post edytował seth-kk 10.11.2009, 12:41:37


--------------------
Go to the top of the page
+Quote Post
erix
post
Post #8





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
ukrywającego wiersze ukrywa mi wszystkie wiersze które mam mam w tbody a ja chce tylko jedna grupę. no i jeszcze jedno jak domyślnie zrobić aby były te wiersze zwinięte, tzn po załadowaniu pokazuje tylko nagłówki.

Możesz całkiem wywalić te identyfikatory, nawet tak będzie lepiej.

W jQuery jest funkcja/selektor eq(), to jej potrzebujesz. winksmiley.jpg

A jeśli potrzebujesz konkretnego offsetu dynamicznie - index() i zwraca ona numer względem kolekcji zapisanej wcześniej w wybranej zmiennej.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
piotrooo89
post
Post #9


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




mam teraz taki problem, chciałbym aby ta tabela była odporna na odświeżania, tzn rozwinąłem np 2 grupy i kliknąłem na link co zrobić aby mi się ona nie chowała?

tabelka wygląda tak:

  1.  
  2. <thead><tr><th style="cursor:pointer" id="1" colspan="2">Grupa 1</th></tr></thead>
  3. <tbody style="display: none;" id="1"><tr><td width="80%">Do gr 1</td><td><a href="?id_user=1">nadaj</a></td></tr></tbody>
  4. <tbody style="display: none;" id="1"><tr><td width="80%">Do gr 1</td><td><a href="?id_user=2">nadaj</a></td></tr></tbody>
  5.  
  6. <thead><tr><th style="cursor:pointer" id="2" colspan="2">Grupa 2</th></tr></thead>
  7. <tbody style="display: none;" id="2"><tr><td width="80%">Do gr 2</td><td><a href="?id_user=3">nadaj</a></td></tr></tbody>
  8. <tbody style="display: none;" id="2"><tr><td width="80%">Do gr 2</td><td><a href="?id_user=4">nadaj</a></td></tr></tbody>
  9.  


i teraz jak kliknę nadaj i mam rozwinięte obie grupy to nieche aby one się chowały. chciałbym uniknąć korzystania a AJAX'a.


--------------------
Go to the top of the page
+Quote Post
askone
post
Post #10





Grupa: Zarejestrowani
Postów: 654
Pomógł: 121
Dołączył: 27.10.2007
Skąd: Poznań, Łódź

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


Może $_Session lub $Cookies winksmiley.jpg

Ten post edytował fly474 13.11.2009, 12:00:01


--------------------
Kliknij jeśli moja odpowiedź Ci pomogła.
askone.pl
Go to the top of the page
+Quote Post
piotrooo89
post
Post #11


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




a jakieś jeszcze pomysły? smile.gif


--------------------
Go to the top of the page
+Quote Post
seth-kk
post
Post #12





Grupa: Zarejestrowani
Postów: 444
Pomógł: 79
Dołączył: 26.05.2009

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


deep linking lub rozwijac w php na podstawie URLa
btw dlaczego oddzielne <tbody /> dla kazdego <tr />?
btw2 id powinno zaczynac sie od litery
skoro id 'musza' sie powtarzac to dlaczego nie zastapisz ich klasami?


--------------------
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 Aktualny czas: 21.08.2025 - 05:13