olo707
25.09.2012, 09:35:36
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.
kamil4u
25.09.2012, 11:30:44
Zamiast $('.date') pobierz następny element od klikniętego( this ), który ma klasę .date. Więcej w dokumentacji jQuery
olo707
25.09.2012, 11:40:58
ale jaką funkcją next() first()
nospor
25.09.2012, 11:43:49
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.
viking
25.09.2012, 11:56:56
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ć.
olo707
25.09.2012, 12:01:59
$('.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
nospor
25.09.2012, 12:11:58
Widać zmienne:
$email<br />$phone<br />$birthday
są puste.... dość logiczne
olo707
25.09.2012, 12:23:21
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)
nospor
25.09.2012, 12:26:57
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...
olo707
25.09.2012, 12:37:02
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();
});
nospor
25.09.2012, 12:39:07
No to w takim razie wyświetlasz je w takim samym kolorze co kolor tła więc ich nie widać

Masz to gdzieś wystawione online? Bo tak to się można do jutra bawić w ciuciubabkę.
olo707
25.09.2012, 12:48:21
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();
});
nospor
25.09.2012, 12:54:26
Wywal te <br /> po H3
Ponawiam pytanie: jesteś w stanie to gdzieś wystawić online?
olo707
25.09.2012, 12:58:50
DZIĘKI TERAZ DZiAŁA
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.