Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript]hide/show div w jquery
olo707
post
Post #1





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 30.03.2012

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


Witam
Mam taki problem. Z bazy danych pobierane są dane i wyświetlane na stronie, w tym przypadku np.Jan Kowalski a pod imieniem i nazwiskiem po kliknięciu w imię i nazwisko pojawiają się bądź znikają pod imieniem i nazwiskiem (toggle w jquery) pozostałe dane np email, telefon, data urodzenia przypisane do konkretnej osoby.
Kod
echo'<h3><a href ="#" class=\'person\'>'.$name.' '.$surname.'</a></h3><br />';
echo"<div class='date' style = 'display:none;'>$email<br />$phone<br />$birthday</div>";


a kod jquery wygląda tak
Kod
$('.person').click(function(){
    $('.date').toggle();
});

Problem polega na tym że w tym przypadku po kliknięciu w imie/nazwisko konkretnej osoby znikają/pojawiają sie dane wszystkich innych osób. Jak przerobić kod jquery tak by po kliknięciu konkretnej osoby pojawiały się/ znikały tylko dane tej osoby.
Go to the top of the page
+Quote Post
kamil4u
post
Post #2





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

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


Zamiast $('.date') pobierz następny element od klikniętego( this ), który ma klasę .date. Więcej w dokumentacji jQuery
Go to the top of the page
+Quote Post
olo707
post
Post #3





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 30.03.2012

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


ale jaką funkcją next() first()
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Poprostu spójrz na swoją strukturę... skoro A jest w H3 a DATE jest za H3 to chyba logiczne ze najpierw masz pójść raz w górę a potem raz w bok.
Do góry używa się parent() a do boku next(). Tu naprawdę nie ma żadnej filozofii a potrzeba odrobina wysiłku w popatrzeniu we własny kod.
Go to the top of the page
+Quote Post
viking
post
Post #5





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Zresztą dopiero co były 2 identyczne wątki, zdaje się że nawet w ciągu ostatniego tygodnia. Wystarczy trochę się przyłożyć i poszukać.
Go to the top of the page
+Quote Post
olo707
post
Post #6





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 30.03.2012

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


$('.person').click(function(){
$(this).parent().next().toggle();
});

teraz niby działa jak powinno z tym że nie widać informacji pod imieniem/nazwiskiem. Technicznie działa jak powinno jak nie widać informacji po prostu jest białe tło
Go to the top of the page
+Quote Post
nospor
post
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Widać zmienne:
$email<br />$phone<br />$birthday
są puste.... dość logiczne
Go to the top of the page
+Quote Post
olo707
post
Post #8





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 30.03.2012

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


nie są puste po pierwsze, a po drugie elementy są jedne pod drugim (email, tel i data urodzenia są ustawione jako display:none) np
jan kowalski
email
tel
data urodzenia

jan nowak
email
tel
data urodzenia

czyli klikając na jan kowalski dane tej osoby się chowają a imie i nazwisko kolejnej osoby automatycznie się podnosi do góry i to wizualnie widać ale w miejscu gdzie te dane (email, tel i data urodzenia) miałyby być widoczne jest białe tło (nic nie ma)
Go to the top of the page
+Quote Post
nospor
post
Post #9





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
i to wizualnie widać ale w miejscu gdzie te dane (email, tel i data urodzenia) miałyby być widoczne jest białe tło (nic nie ma)
No to ci grzecznie tłumacze, że te dane są puste....

Zobacz źródło strony (w przeglądarce) i zobacz czy są czy nie ma...
Go to the top of the page
+Quote Post
olo707
post
Post #10





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 30.03.2012

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


Sprwadzałem nie są puste (zródło strony) a poza tym po modyfikacji czyli usunięciu <h3></h3> i parent() w jquery kod w ogóle nie działa
Kod
        echo'<a href ="#" class=\'person\'>'.$name.' '.$surname.'</a><br />';
        echo"<div class='date' style = 'display:none;'>$email<br />$phone<br />$birthday</div>";



Kod
        $('.person').click(function(){
        $(this).next().toggle();
        });
Go to the top of the page
+Quote Post
nospor
post
Post #11





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No to w takim razie wyświetlasz je w takim samym kolorze co kolor tła więc ich nie widać (IMG:style_emoticons/default/smile.gif)

Masz to gdzieś wystawione online? Bo tak to się można do jutra bawić w ciuciubabkę.
Go to the top of the page
+Quote Post
olo707
post
Post #12





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 30.03.2012

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


zaręczam że nie wyświetlam tego wykorzystując białą czcionkę kod, który podałem przy zakładaniu tematu działa ale na wszystkie osoby po dodaniu do kodu jqery fukcji parent() i next() jestem w stanie uchwycić dane do konkretnej osoby z tym że nie widać ich (tych danych) na ekranie po dodaniu tych funkcji

$('.person').click(function(){
$(this).parent().next().toggle();
});

Go to the top of the page
+Quote Post
!*!
post
Post #13





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


http://jsfiddle.net/fSstm/
Go to the top of the page
+Quote Post
nospor
post
Post #14





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Wywal te <br /> po H3

Ponawiam pytanie: jesteś w stanie to gdzieś wystawić online?
Go to the top of the page
+Quote Post
olo707
post
Post #15





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 30.03.2012

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


DZIĘKI TERAZ DZiAŁA
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 10:14