Witam,
dołączę się do tematu ze względu na pokrewieństwo.
Cytat
Mam tabele generowaną w php o zmiennej ilości wierszy w zależności od wybranego dokumentu który przedstawia ów tabela.
Każdy z wierszy posiada ukryty wiersz poniżej w którym są informacje szczegółowe dotyczące wiersza jawnego.
Moim celem jest odkrycie tylko jednego wiersza ukrytego należącego do wiersza "macierzystego" poprzez kliknięcie w zawartość wiersza odkrytego.
Chciałem również zrobić to w taki sposób, że kiedy kliknie się w inny jawny wiersz, otworzy się ukryta zawartość, a schowa się zawartość wiersza poprzednio odkrytego.
-- wiersz jawny --
- > wiersz ukryty --
-- wiersz jawny --
- > wiersz ukryty --
itd
Chciałem użyć zmiany class z .zamkniety na .otwarty gdzie
Klasy css
.zamkniety { display: none; }
.otwarty { }
Skrypt wywołujący zmianę klasy wiersza
<script type= "text/javascript">
function rozwinwiersz(otwarty, zamkniety) {
var el = document.getElementById(zamkniety);
el.className = otwarty;
}
</script>
Link aktywujący zmianę
<a href="java script:void(rozwinwiersz('otwarty', 'zamkniety'))">Zmień klasę
</a>
Skrpyt działa, ale odkrywa tylko pierwszy ukryty wiersz w tabeli i nic poza tym.
Wiem, że istnieje sposób natomiast nie wiem jaki, gdyż nie jestem biegłym programistą. Czy mogę prosić o wskazówki?
________________________________________
Witam ponownie,
zrobiłem pewien postęp gdyż żadna z metod nie była skuteczna.
Zagłębiłem się w prezentowane tutaj przykłady i co następuje.
W tabeli są 4 wiersze, widoczne są parzyste czyli wiersz 0 i 2, nieparzyste są ukryte display: none.
Wiersze są zbudowane tak samo żeby mogły wyzwolić funkcję odkrywającą ukryty pod sobą wiersz, jednak ten skrypt odkrywa tylko pierwszy ukryty wiersz, chowając macierzysty.
Jak zrobić tak by każda następna para działała według zasady odkryj wiersz ze szegółami, ukryj poprzedni odkyty, nie zaś macierzysty?
Z góry dziękuję i pozdrawiam
<script type="text/javascript" src="jquery-1.3.2.min.js"></script> <style type="text/css" media="all">
.ukryty { display: none; }
.widoczny { }
<script type="text/javascript">
$(document).ready(function(){
$('#rozwin').click(function(){
$(this).toggleClass('ukryty'); // jeśli usunę klasę 'ukryty', wiersz macierzysty pozostanie widoczny tu nie ma problemu ale nie wiem jak to wykorzystać do przełączania widoczności wierszy dzieci
$('#ukryty').slideToggle();
});
});
<TR id="rozwin"> <!-- pierwszy wiersz macierzysty, klikając gdziekolwiek na nim, odkryje się wiersz dziecko --> rozwiń 1
<TR id="ukryty" style="display: none;"> <!-- wiersz dziecko, rozwija się bez problemu --> <TD>szczegoly
</TD> <!-- właściwie to jest jeden problem, wyświetla tabelę jako display: block, jak to wyświetlić jako display'' bez block -->
<TR id="rozwin"> <!-- wiersz macierzysty drugi, nie działa nawet jak spróbuję odpalić go jako pierwszy, nie działa również, na wiersz ukryty wyżej --> <TD> <!-- wierszy będzie zmienna ilość od jednego, przez 3 aż po sto ileś --> rozwiń 2
<TR id="ukryty" style="display: none;"> <!-- siłą rzeczy ten wiersz jest ukryty cały czas <TD>szczegoly 2 </TD>
<TD>itd 1</TD>
<TD>itd</TD>
<TD>itd</TD>
<TD>itd 12312</TD>
</TR>
</TABLE>
</BODY>
</HTML>