Autor | Zpráva | ||
---|---|---|---|
Kraken Profil * |
#1 · Zasláno: 12. 3. 2013, 14:15:56
Ahoj, jak udělám, aby se zobrazila pouze skupina řádků pod nadpisem? Takhle se zobrazují všechny skryté skupiny.
<table> <tr><td colspan="2" class="show">Nadpis 1</td></tr> <tbody class="skryj"> <tr><td>AA</td><td>BB</td></tr> <tr><td>AA</td><td>BB</td></tr> </tbody> <tr><td colspan="2" class="show">Nadpis 2</td></tr> <tbody class="skryj"> <tr><td>CC</td><td>DD</td></tr> <tr><td>CC</td><td>DD</td></tr> </tbody> </table> <script type="text/javascript"> $(function() { $('.skryj').hide(); $('.show').click(function() { $('.skryj').toggle(); }); }) </script> |
||
Martin02 Profil |
Kraken:
$('.skryj') toto označuje jak ten spodní text, tak ten horní text, takže se zobrazí/zmizí oba. Proveď změnu, aby jsi vybíral jen jeden text - jeden tbody:
<table> <tr><td colspan="2" class="show1">Nadpis 1</td></tr> <tbody class="skryj1"> <tr><td>AA</td><td>BB</td></tr> <tr><td>AA</td><td>BB</td></tr> </tbody> <tr><td colspan="2" class="show2">Nadpis 2</td></tr> <tbody class="skryj2"> <tr><td>CC</td><td>DD</td></tr> <tr><td>CC</td><td>DD</td></tr> </tbody> </table> <script type="text/javascript"> $('.skryj1, .skryj2').hide(); $('.show1').click(function() { $('.skryj1').toggle(); }); $('.show2').click(function() { $('.skryj2').toggle(); }); </script> |
||
Kraken Profil * |
#3 · Zasláno: 12. 3. 2013, 14:43:57
Díky, ale já budu mít X [1-1000] skupin řádků (tbody), nebylo by něco univerzálnějšího? Snažil jsem se použít v jQuery NEXT, ale vůbec mi to nefungovalo.
Děkuji za pomoc |
||
Janca Profil * |
#4 · Zasláno: 12. 3. 2013, 20:29:13
Také by mě zajímalo jak toto řešit, mám obdobný problém.
Pomůže někdo? |
||
preca1 Profil |
#5 · Zasláno: 12. 3. 2013, 22:07:57
Předpokládám, že to HTML bude něčím generované (JS, PHP, Java, ...). Jde to udělat několika způsoby:
1) každému nadpisu a tbody vygenerovat unikátní id a pomocí toho potom zacílit script přidávající posluchač události. Přidání posluchače bych udělal v každé iteraci zvlášť pro právě vygenerovanou skupinu řádků (pomocí elementu script). 2) každému nadpisu a tbody vygenerovat unikátní id. Přidat jeden posluchač události pro celou tabulku a potom v obsluze události kontrolovat, na jaký element se kliklo. Pokud to byl nadpis, tak například z jeho id odvodit id tbody, které má být skryto/zobrazeno. Tomuto řešení se říká delegování události a je to vhodný řešení, pokud by posluchačů událostí mělo bejt moc (kolik je moc, záleží na prostředí, kde script poběží) - ušetří to hlavně paměť. Řešení je to ale složitější na implementaci. |
||
Kcko Profil |
#6 · Zasláno: 13. 3. 2013, 00:13:22
Kraken:
Obal si ty klikací řádky thead em viz. http://jsfiddle.net/F3kEp/1/
next Ti fungovat nemohlo, protože v DOM struktuře rozhodně není tag TR vedle tagu TBODY
|
||
Kraken Profil * |
#7 · Zasláno: 13. 3. 2013, 14:05:44
Bomba! Děkuju
|
||
Časová prodleva: 11 let
|
0