hilfdirselbst.ch
Facebook Twitter gamper-media
"Funktioniert nicht" ist keine hinreichende Fehlerbeschreibung.
Tömsken
Beiträge: 720
29. Dez 2004, 16:46
Beitrag #1 von 6
Bewertung:
(1328 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Tabellenzeilen ausblenden


Hi.
Mein "Plan" ist, in Abhängigkeit eines Schalters eine oder mehrere Table Rows ein- und auszublenden via "display:none". Das klappt gut im IE 6 während Gecko aus der Seite Mus macht. Woran liegt's?

function showUserInfo(show) {
var tr = document.getElementsByTagName("tr");
for (var n=0; n<tr.length; n++) {
if (tr[n].id=='trperson') tr[n].style.display = (show ? 'block' : 'none');
}
}

Etwa so sieht die Tabelle aus:

<table width="100%" border="0" cellspacing="2" cellpadding="0">
<tr>
<td align="right" width="5%">Empf&auml;nger</td>
<td width="5">&nbsp;&nbsp;</td>
<td width="94%">
<select name="address" size="1" onChange="on_addressChanges()">
[gekürzt]
</select>
</td>
</tr>
<tr id="trperson" style="position:relative; display:none;">
<td></td>
<td></td>
<td>Diese Zeile wird ein-/ausgeblendet</td>
</tr>
[gekürzt]
</table>

Danke für Tipps...
Tom Top
 
X
ganesh  M 
Beiträge: 1981
29. Dez 2004, 17:42
Beitrag #2 von 6
Beitrag ID: #132998
Bewertung:
(1328 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Tabellenzeilen ausblenden


Ich würde nur den TEXT ausblenden, nicht gleich eine ganze table row. Ausserdem würde ich eher getelementbyid verwenden, ungefähr so:


JS:
function isEven(x) { return (x%2)?false:true; }
function isOdd(x) { return !isEven(x); }

tCounter = 1;

function toggle(x) {

if(isOdd(tCounter)) {
document.getElementById(x).style.display='none';
return false;
}

if(isEven(tCounter)) {
document.getElementById(x).style.display='inline';
return false;
}

}

....


Link:
<a href="#" onClick="toggle('trperson'); tCounter++;">test</a>

....

<td><span id="trperson">Diese Zeile wird ein-/ausgeblendet</span></td>

(d.h. <tr> keine id zuweisen)
als Antwort auf: [#132989] Top
 
Anonym
Beiträge: 22827
30. Dez 2004, 03:55
Beitrag #3 von 6
Beitrag ID: #133092
Bewertung:
(1328 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Tabellenzeilen ausblenden


Dank Dir.

Wenn man einzelne TDs, DIVs oder Texte ein-/ausblendet, gibt's keine Probleme mit Gecko. Nachdem ich meinen Code inzwischen mehrfach Korrekturgelesen und durch Validatoren geschickt habe, bin ich mir nun sicher, dass die Gecko-Engine einfach keine <TR>s "anständig" ein-/ausblenden kann.

Die TR-Variante wäre in meinem Fall aber schick gewesen, weil in der linken Spalte stets das Label steht, dann eine Platzhalter-Spalte und in der dritten das Control. Ein Schreibzugriff auf "display" hätte also gereicht anstelle von dreien. Nun ja... ;)

Bye, Tom
als Antwort auf: [#132989] Top
 
SabineP  M 
Beiträge: 7586
30. Dez 2004, 11:01
Beitrag #4 von 6
Beitrag ID: #133136
Bewertung:
(1328 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Tabellenzeilen ausblenden


Hi Tom,

hast Du es schon mal so versucht?

<html>
<head>
<style type="text/css"><!--
#reihe {visibility:visible;background-color:#ff0000}
--></style>

<script type="text/javascript">
<!--
function ein(id){
document.getElementById(id).style.visibility="visible";
}
function aus(id){
document.getElementById(id).style.visibility="hidden";
}
// -->
</script>
</head>

<body>

<a href="#" OnMouseOver="aus('reihe');return false;" OnMouseOut="ein('reihe');return false;">Reihe bei Mouseover über diesen Link ausblenden</a>

<TABLE border="1">
<TR id="reihe">
<TD>Reihe1</TD>
<TD>Reihe1</TD>
</TR>
<TR>
<TD>Reihe2</TD>
<TD>Reihe2</TD>
</TR>
</TABLE>

</body>
</html>

Gruß Sabine
als Antwort auf: [#132989]
(Dieser Beitrag wurde von SabineP am 30. Dez 2004, 11:13 geändert)
Top
 
Tömsken
Beiträge: 720
30. Dez 2004, 17:29
Beitrag #5 von 6
Beitrag ID: #133213
Bewertung:
(1328 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Tabellenzeilen ausblenden


Salut Sabine,

die "visibility"-Variante klappt auch mit Gecko gut - hab's probiert. Allerdings tun sich dabei in meinem recht komplexen Formular ziemlich unschön große Lücken auf, so dass das leider kein gangbarer Weg ist.

Ich weiß nicht, was tun... auf 2 separate HTML-Seiten wollte ich eigendlich verzichten... mal schauen, mal probieren... ich pack' jetzt mal <DIV>s in die Tabelle...
als Antwort auf: [#132989] Top
 
SabineP  M 
Beiträge: 7586
30. Dez 2004, 17:45
Beitrag #6 von 6
Beitrag ID: #133214
Bewertung:
(1328 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Tabellenzeilen ausblenden


Es bleibt ja immer noch die Möglichkeit für jede Reihe eine extra Tabelle anzulegen.
Das Ausblenden einer ganzen Tabelle klappt sicher besser als das Ausblenden einer einzelnen Reihe.

Gruß Sabine
als Antwort auf: [#132989] Top
 
X