![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 3.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam takie coś: I tutaj mam fragment jQuery: Kod $("ol#wizytowka div#wiecej").hide(); $("a#pokazwiecej").click(function(){ $(this).prev("div#wiecej").slideToggle(500) return false; }); I nie działa mi to. Czego oczekuję: Na początku po wczytaniu wszystkie divy#wiecej są niewidoczne (to działa). Teraz chcę, aby po kliknięciu na więcej chcę aby div#wiecej pokazywał się lub chował, ale do poszczególnego <li>. I nie wiem jak to zrobić (IMG:style_emoticons/default/sad.gif) Ten post edytował zonkerman 19.07.2010, 17:03:50 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 99 Pomógł: 7 Dołączył: 17.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Musisz wiedzieć, że na stronie nie może być kilku znaczników z tym samym id. Więc chyba zamiast id="więcej" powinieneś użyć class="więcej". To się tyczy znacznika li i div w Twoim przypadku. A jak to rozwiązać? musisz pokombinować.
Ten post edytował kreciko 19.07.2010, 18:51:22 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 3.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
Czemu nie może być? Wtedy tylko rozdzielasz wpisując w uchwytach np a#wiecej ; p#wiecej itd. Zależy co chcesz wziąć. Kombinuje cały czas. Bo jeśli nie mam tego diva#opcje , to wtedy działa. Więc jakoś jego muszę przeskoczyć.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 99 Pomógł: 7 Dołączył: 17.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Tu masz dlaczego: http://www.w3.org/TR/xhtml1/#h-4.10
Tak jest w specyfikacji. I jeżeli się odwołujesz do elementu o id=wiecej, to silnik javascripta nie wie, czasami się odwoła do jednego, czasami do drugiego, czasami do obu, a czasami nie zadziała, zależy jaka przeglądarka(jaki silnik). Ja bym to zrobił tak: "$("li#wiz").next("div#wiecej").toggle()" |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 3.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
Akurat u mnie nie ma kliku id. Chyba, że chodzi Ci o to, że np mam kilka wyświetlonych li. Ale może być kilka choćby dlatego (punkt 7):
http://www.webdesignerwall.com/tutorials/j...-for-designers/ Jak będzie trzeba to pominę tego <div id="opcje"> ale jednak wolałbym, aby on był. A Twój sposób jakoś nie bardzo chce działać. Ten post edytował zonkerman 19.07.2010, 22:38:55 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 99 Pomógł: 7 Dołączył: 17.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Piszesz to w php, czy w html? Mógłbyś podać kontekst w którym to masz? Spróbuj swoją stronę zwalidować.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 3.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
W php. Tutaj jest fragment kodu (pętla w php):
A tutaj jQuery: Kod $(document).ready( function() { $("ol#wizyt div#wiecej").hide(); $("a#pokazwiecej").click(function(){ $(this).prev("div#wiecej").slideToggle(500); return false; }); }); Teraz akurat nie mam możliwości zrobić walidacji, bo nie mam stronki na serwerze, tylko piszę ją lokalnie. ale może tego nie trzeba robić. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 99 Pomógł: 7 Dołączył: 17.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Ja bym sobie to zprametryzował ten kod html.
Jak masz zapytanie do mysql, to pewnie zwraca Ci jakąś unikatową wartość, np. id, albo hash
a w jQuery tak:
Ten post edytował kreciko 20.07.2010, 10:12:46 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 3.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
Akurat tego nie chcę parametryzować (IMG:style_emoticons/default/smile.gif) To ma być stałe, dopiero dane w div'ach będą wyświetlały dane z bazy. Więc chcę, aby to wyglądało tak:
Dlatego chcę, aby był ten div#opcje ,to w stylach chcę go sobie odpowiednio poformatować. Próbowałem nawet coś kombinować w prevUntil, ale też mi to nie chciało działać. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 99 Pomógł: 7 Dołączył: 17.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Sprawdziłbym jeszcze konsole błędów. Albo zrobiłbym, tak:
Zamiast tego:
Dałbym to:
ewentualnie napisać, tak jak jest tutaj: http://api.jquery.com/prev/ - pierwszy przykład, obczaj kod. |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 3.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli mam:
I w skrypcie napiszę:
To chowa mi div#glowne. A jeśli mam: To nic się nie dzieje. Konsola błędów nic nie pokazuje. Nawet jak robię różne kombinacje do tego prev() tzn wpisuje tam różne div'y to i tak nie działa :/ Przykład działa, nawet na 2 .prev() , ale do swojego nie mogę użyć :/ Sposób z id też nie działa. Ten post edytował zonkerman 20.07.2010, 16:57:23 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 589 Pomógł: 91 Dołączył: 22.05.2008 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
Nie rozumiem dlaczego nie słuchasz ludzi którzy starają Ci pomóc. Musisz mieć unikalne id, taka jest idea całego atrybutu id, bo jeśli by tak nie było to czym by się różniło od atrybutu class? Zresztą atrybut id jako pole z bazy to jest marny pomysł.
Ja bym nie krył za pomocą JS`a bo jeśli nie zostanie wczytane całe drzewko DOM to ten tekst będzie widoczny co sprawi przy wolniejszych łączach efekt takiego niefajnego mrugnięcia/zniknięcia... Nie używaj taga <a/> jeśli nie jest to link. To kłóci się z tym co ma reprezentować ten znacznik.
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 3.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki (IMG:style_emoticons/default/smile.gif) To działa. Musze tylko przerobić parę rzeczy pod siebie. Wielki dzięki.
==EDIT== Tylko 1 problem. Jak mam w tym div#opcje linki <a> to wtedy każdy mi otwiera tego diva#wiecej . Wiec jak zrobić, aby tylko na przycisk Więcej reagował? Ten post edytował zonkerman 20.07.2010, 22:28:18 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 21:31 |