kann ich den aktuellen Zustand abfragen? und wie?
René
- javascript
0 Dimitri Rettig0 Christian0 wahsaga
Hallo,
ich möchte per Mausklick eine Tabelle mit der id="test" per test.style.display="none"/"block"; ein oder ausblenden.
Wie kann ich nun abfragen ob die Tabelle ein oder ausgeblendet ist?
um dann dementsprechend ein oder aus zublenden.
Danke.
Hallo,
Wie kann ich nun abfragen ob die Tabelle ein oder ausgeblendet ist?
if (test.style.display == "none")
test.style.display = "block";
Mit freundlichen Grüßen
Dimitri Rettig
Hallo,
Wie kann ich nun abfragen ob die Tabelle ein oder ausgeblendet ist?
if (test.style.display == "none")
test.style.display = "block";Mit freundlichen Grüßen
Dimitri Rettig
hab folgendes script geschrieben
--------------
function ShowHideBlock(nr)
{
if(document.getElementById)
{
obj=document.getElementById(nr);
}
if(document.all && !document.getElementById)
{
obj=document.all[nr];
}
if (obj.style.display == "none")
{
obj.style.display = "block";
}
if (obj.style.display == "block")
{
obj.style.display = "none";
}
}
------------------
beim Aufruafen kommt aber folgender Fehler
Objekt erforderlich
wo liegt der Fehler
Hallo René,
Objekt erforderlich
Interessant ist natürlich immer noch die betroffene Zeile.
wo liegt der Fehler
Vermutlich daran, dass Du getElementById() eine Zahl übergibst, was Deine Variablenbenennung andeutet.
Du solltest Da aber eine Id angeben.
Grüße
Daniel
Hallo René,
Objekt erforderlich
Interessant ist natürlich immer noch die betroffene Zeile.
wo liegt der Fehler
Vermutlich daran, dass Du getElementById() eine Zahl übergibst, was Deine Variablenbenennung andeutet.
Du solltest Da aber eine Id angeben.Grüße
Daniel
ist mir schon klar das hab ich der fehler liegt zeile 14 zeichen 3
1 function ShowHideBlock(nr)
2 {
3 if(document.getElementById)
4 {
5 obj=document.getElementById(nr);
6 }
7 if(document.all && !document.getElementById)
8 {
9 obj=document.all[nr];
10 }
11
12
13 if (obj.style.display == "none")
14 obj.style.display = "block";
15
16 if (obj.style.display == "block")
17 obj.style.display = "none";
18
19 }
Hallo René,
und wozu sollte das:
13 if (obj.style.display == "none")
14 obj.style.display = "block";
15
16 if (obj.style.display == "block")
17 obj.style.display = "none";
überhaupt gut sein? ändert doch nichts (außer für ein paar Millisekunden..;-)
Gruß
Ingo
So hab die Lösung selber entwickelt hier nochmal für alles die es interessiert.
eine kleine Anleitung und ein Praxisbeispiel gibt es auf meiner Homepage s.o.
-----------------------
Das Script: showhide.js
-----------------------
function ShowHide(nr)
{
if(document.getElementById)
{
obj=document.getElementById("ob"+nr);
}
if(document.all && !document.getElementById)
{
obj=document.all["ob"+nr];
}
//Display Funktion
if(obj.style.display=="none")
{
obj.style.display="block";
}
else if(obj.style.display=="block")
{
obj.style.display="none";
}
}
---------------------------
Einbinden in die HTML Datei
---------------------------
<head>
<script src="skripte/showhide.js"></script>
</head>
<body>
<table border="0">
<tr style="cursor: hand;" onclick="showhide(1)"><td>Ein oder ausblenden</td></tr>
</table>
<table style="display: block;" border="0" bgcolor="#EFEFEF" width="100" height="50" id="ob1">
<!--wichtig ist die Style-Angabe sonst bekommt man zwar keinen Fehler aber es funktioniert nicht-->
<tr><td>Test Tabelle</td></tr>
</table>
</body>
Sollte noch jemand dazu Fragen haben der schreibe mir eine Mail, Gruß René
hi René,
So hab die Lösung selber entwickelt hier nochmal für alles die es interessiert.
zwar wirklich löblich, daß Du Dich nochmal selbst dran versucht hast, aber die Lösung von Christian ist wohl doch um einiges einfacher und funktioniert genauso gut (abgesehen vom IE 4).
Und wenn Du hier das Variablenergebnis einbauen würdest, bliebe eine einzige Anweisung über, die Du sogar direkt bei onclick= einsetzen könntest.
Nach dem Motto 'Weniger ist mehr':
if(document.all && !document.getElementById)
Ist der IE4 wirklich noch relevant?
else if(obj.style.display=="block")
wenn schon mit if... dann reicht 'else' hier völlig aus, oder?
<table style="display: block;" border="0" bgcolor="#EFEFEF" width="100" height="50" id="ob1">
nur mal zum Beispiel: wenn Du ohnehin eine id und einen style verwendest, warum dann nicht den style von #ob1 mit allen Eigenschaften im head komplett definieren (zumal "height" bei <table> eigentlich nicht zulässig ist)?
Gruß
Ingo
Hi,
test.style geht nur im IE, soweit ich weiß.
nimm lieber document.getElementById("test").style
dann so:
var obj = document.getElementById("test");
obj.style.display = (obj.style.display == "none") ? obj.style.display = "block" : obj.style.display = "none";
macht immer den entgegengesetzten Zustand.
Christian
hi,
var obj = document.getElementById("test");
obj.style.display = (obj.style.display == "none") ? obj.style.display = "block" : obj.style.display = "none";
wenn wir schon am tipparbeit sparen sind, warum dann nicht gleich so:
var obj = document.getElementById("test").style.display;
obj = (obj == "none") ? obj = "block" : obj = "none";
;-)
gruss,
wahsaga