![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 18.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Na stronie generuję listę rekordów, które wyświetlane są z parametrami. Z racji tego, że lista + parametry zajmują dużo miejsca, to postanowiłem je poukrywać i dać możliwość rozwinięcia uch po kliknięciu w przycisk. skrypcik w jQuery wygląda tak: Oczywiście działa poprawnie, ale tylko dla elementu o określonej klasie (w tym przypadku kliknięcie w div'a hide_table ukrywa tabele o klasie param_table. Gdybym chciał wykonać zwijanie/ rozwijanie dla wszystkich rekordów to musiałbym w miniskrypciku podawać wszystkie użyte klasy dla ukrywacza i dla elmentu ukrywającego. Obstawiam, że jest jakaś metoda aby w jQuery podać jakiś parametr (wyrażenie?), które nie będzie wymagało podawania wszystkich klas w skrypcie tak żeby element ukrywający sam dopasował "element ukrywany" na podstawie np. id? Coś w stylu: <script type="text/javascript"> $(".hide_table[x++]").click(function () { $(".param_table[x++]").toggle("slow"); }); </script> Druga sprawa. Teraz w divie, który pokazuje/ ukrywa parametry mam frazę "Pokaż parametry". Chciałbym aby w momencie rozwinięcia parametrów pojawiła się inna fraza, np. Ukryj parametry. To jest moja pierwsza styczność z jQuery i pytania dla wielu z Was pewnie są banalne. Jeśli ktoś wie jak to zrobić to może zechce się podzielić wiedzą ![]() Pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 376 Pomógł: 47 Dołączył: 23.08.2007 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Przeciez mozesz te same klasy ponadawac dla wielu elementow, poza tym masz duzo metod dojscia do elementow, np.
A co do drugiego:
Oczywiscie z glowy pisane, tak mniej wiecej... zapoznaj sie z text, val, attr - to odnosnie odczytywania wartosci. No i z opcjami find, parent, parents, next, prev itp., ktore ulatwia Ci wedrowke po elementach EDIT: aha, jeszcze toggle, toggleClass, removeClass, addClass, removeAttr - z tym sie zapoznaj ![]() Ten post edytował Kostek.88 6.12.2011, 00:22:17 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 18.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za info.
Jutro na spokojnie sobie poszperam, teraz pora spać ![]() Jeśli chodzi o użycie tych samych nazw klas to właśnie chodzi o to, że nie mogę tego zrobić ponieważ jak rozwinąłbym parametry jednego rekordu to rozwinęłyby mi się wszystkie (mają tą samą klasę). rekord1 paramery1 rekord2 parametry2 i tak do 100 na stronę :] Chodziło właśnie o to żeby z automatu uruchomić skrypt dla klasa1, klasa2, klasa3 itd., ale to już jutro sobie poszperam. Pozdrawiam |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za info. Jutro na spokojnie sobie poszperam, teraz pora spać ![]() Jeśli chodzi o użycie tych samych nazw klas to właśnie chodzi o to, że nie mogę tego zrobić ponieważ jak rozwinąłbym parametry jednego rekordu to rozwinęłyby mi się wszystkie (mają tą samą klasę). rekord1 paramery1 rekord2 parametry2 i tak do 100 na stronę :] Chodziło właśnie o to żeby z automatu uruchomić skrypt dla klasa1, klasa2, klasa3 itd., ale to już jutro sobie poszperam. Pozdrawiam Poczytaj pierw o selektorach w css, potem o selektorach w jquery, a potem to już powinieneś sam pisać takie rozwiązania: http://api.jquery.com/class-selector/ poczytaj też komentarze, w komentarzach też jest wiele rzeczy których nie ma w dokumentacji. EDIT: druga sprawa, przecież możesz w samym elemencie podać dodatkową klasę, przykładowo: Kod <div class="pierwsza_klasa druga_klasa trzecia_klasa"></div>
Ten post edytował by_ikar 6.12.2011, 08:59:14 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 18.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
Poczytaj pierw o selektorach w css, potem o selektorach w jquery, a potem to już powinieneś sam pisać takie rozwiązania:
[HTML] pobierz, plaintext <script> $('.klasa1, .klasa2, .klasa3, .klasa4, .klasa5, .klasa6').click(function(){ if ($(this).text() == 'pokaz') { $(this).text() = 'ukryj'; } else { $(this).text() = 'pokaz'; } }); </script> Ale zrozum, że chcę uniknąć takiego rozwiązania. Jak będę miał 1000 rekordów na stronie to mam podać 1000 klas w skrypcie jQuery? Rozwiązanie co najmniej nieeleganckie. Na pewno użyję .attr, dorzucę sobie jakiś atrybut, np. hidden = X, gdzie X będzie kolejną liczbą porządkową rekordu - powinno zadziałać. EDIT: druga sprawa, przecież możesz w samym elemencie podać dodatkową klasę, przykładowo: Kod <div class="pierwsza_klasa druga_klasa trzecia_klasa"></div> To jest oczywiste, ale zamiast klasy użyję atrybuty specjalnie na potrzeby ukrywania. Dzięki Pozdrawiam |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 376 Pomógł: 47 Dołączył: 23.08.2007 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
A takie cos?
Cos tego typu... ja bym to tak okodowal. Oczywiscie mozesz przerobic na swoje potrzeby. Wskazowka: jesli chcesz wyjsc kilka poziomow wyzej to zamiast parent musi byc parents. Ale, zeby nie bylo tak latwo... jak masz zagniezdzonych w sobie kilka div-ow, to moze Ci zlapac wszystkie nadrzedne, dlatego pomocne jest czasami:
Ten post edytował Kostek.88 6.12.2011, 21:18:32 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 23:31 |