Mateusz K.

Mateusz K. miszcz wwwujitsu

Temat: zwijanie/rozwijanie krotek tabeli

Cześć,
mam działającą funkcję animującą rozwijanie i zwijanie tabeli do określonej ilości rzędów.
Przy jednej tabeli działa elegancko. Problem w tym, że przy większej ilości tabel na stronie, skrypt obejmuje wszystkie z nich i efekt choć ciekawy jest niezamierzony. Natomiast odniesienie do aktualnej tabeli poprzez $(this), nawet gdy hrefy znajdą się w komórkach tabeli, nie przynosi efektów.
Wyjściowy kod na fiddle

Przeszukałem internety aby znaleźć natchnienie, ale poza jsgridami, czy rozwijaniem zawartości komórki, nic nie wskórałem. Może macie pod ręką namiar na gotowca (animację dopiszę), lub pomysł na zmianę wypoconego przeze mnie kodu aby link odnosił się do aktualnej tabeli (bądź poprzedzającej link) ?

konto usunięte

Temat: zwijanie/rozwijanie krotek tabeli

Umieść linki "rozwiń tabelę" i "zwiń tabelę" w TFOOT danej tabeli i w skrypcie odwołuj się do tabeli za pomocą .parents('table');

konto usunięte

Temat: zwijanie/rozwijanie krotek tabeli

Tak po szybkim rzuceniu okiem wychodzi na to że wykorzystujesz zmienną tr która zawiera wszystkie rekordy wszystkich tabel więc to całkowicie normalne że tak to działa.

Przenieś kod do jakiejś funkcji która w parametrze przyjmuje element dokumentu HTML. Zwyczajnie sprawdź czy przekazany obiekt będzie miał atrybut tagName i czy jego wartość to "TABLE". Dalej chyba wiesz co robić. Pobrać wiersze i wykonać odpowiedni kod.

konto usunięte

Temat: zwijanie/rozwijanie krotek tabeli

Ewentualnie, jeśli nie chcesz (bo w sumie nie powinieneś) polegać na strukturze htmla, powiąż przycisk i tabelę atrybutami np data-tableid="X dla tabeli i data-expand="X" dla przycisku.
Wojciech Kopycki

Wojciech Kopycki CEO at CopySky

Temat: zwijanie/rozwijanie krotek tabeli

Dorób do buttonów właściwość "rel", która będzie zawierała np. nazwę klasy tabeli, na której chcesz operować. W ten sposób sam możesz zdecydować, ile i które tabele zamierzasz "tooglać". :D

konto usunięte

Temat: zwijanie/rozwijanie krotek tabeli

Wojciech Kopycki:
Dorób do buttonów właściwość "rel", która będzie zawierała np. nazwę klasy tabeli, na której chcesz operować. W ten sposób sam możesz zdecydować, ile i które tabele zamierzasz "tooglać". :D

Zdecydowanie lepiej użyć (zgodnie z poradą Rafała) atrybutów data. Poza tym rel jest dość specyficznym atrybutem i opisuje relację pomiędzy istniejącym oraz linkowanym dokumentem. Ponadto atrybut ten powinien mieć określoną wartość (np. nofollow lub alternate).
Mateusz K.

Mateusz K. miszcz wwwujitsu

Temat: zwijanie/rozwijanie krotek tabeli

Wielkie dzięki panowie za wszystkie cenne uwagi.
Ostatecznie ukrywam zawartość tabel podczas window load, hrefy sterujące zagnieździłem w tfoot i odnoszę się do ukrytych komórek w tbody przy użyciu closest() i find(). Może nie jest to najelegantsze i najbardziej optymalne rozwiązanie, ale przy małej ilości niewielkich tabel sprawdza się znakomicie.

Następna dyskusja:

Dynalmieczne tworzenie tabe...




Wyślij zaproszenie do