Zum Inhalt springen

navigations-tree


-cta-

Empfohlene Beiträge

hallo zusammen...

als javascript nixkenner hab ich mal ne frage:

so erstmal den code....

<div id="item1" class="parent">

<table valign=top border="0" cellpadding="0" cellspacing="0" text decoration=none>

<td valign=left>

<a href="javascript:ExpandShrink(1)">

 Kontakt

</a>

</td>

</tr>

</table>

</div>

<div id="item2" class="child">

<table border="0" cellpadding="0" cellspacing="0">

<tr>

<td>

</td>

<td align="left">

    Tympelfelz

</td>

</tr>

<tr>

<td>

</td>

<td align="left" valign="center">

    Daynon

</td>

</tr>

</table>

</div>

<br>

<div id="item3" class="parent">

<table border="0" cellpadding="0" cellspacing="0">

<tr>

<td valign=top>

<a href="javascript:ExpandShrink(3)">

 Berichte

</a>

</td>

</tr>

</table>

</div>

<div id="item4" class="child">

<table border="0" cellpadding="0" cellspacing="0">

<tr>

<td align="left">

    InTime-Berichte

</td>

</tr>

<tr>

<td align="left" valign="center">

    OutTime-Berichte

</td>

</tr>

</table>

nun das problem:

wenn ich z.b. auf den link "Kontakt" klicke, klappt das menue wie gewollt auf...wenn ich mir nun einen anderen menuepunkt aussuche, dann öffnet dieser sich auch...ok....passt ja...aber wie krieg ich den menuepunkt kontakt in einem wieder zu, so dass immer nur ein menuepunkt ausgeklappt ist??????

gruss,

derBoes

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von beebof

hmmmm.... is ja ganz nett dein code... aber irgendwie fehlt der javascript-source für "ExpandShrink(x)"...

der wäre auch noch ganz nett :)

*-cta- verweist auf die uhrzeit*

:D:D:D

//============================================================================

// function ExpandShrink()

//

// Shows or hides an item in the tree identified by iItem

//

// Numeration is as follows:

//

// parent(0)

// |

// +-- child(1)

// parent(2)

// |

// +-- child(3)

// ...

//============================================================================

function ExpandShrink(iItem)

{

if(ns)

{

if(document.layers[iItem].visibility == "show")

{

for(var iI=iItem+1; iI<document.layers.length; iI++)

{

document.layers[iI].top -= document.layers[iItem].clip.height;

}

document.layers[iItem].visibility = "hide";

}

else if(document.layers[iItem].visibility == "hide")

{

for(var iI=iItem+1; iI<document.layers.length; iI++)

{

document.layers[iI].top += document.layers[iItem].clip.height;

}

document.layers[iItem].visibility = "show";

}

}

if(ie)

{

if(document.all["item"+(iItem+1)].style.display == "none" || document.all["item"+(iItem+1)].style.display == "")

{

document.all["item"+(iItem+1)].style.display = "block";

}

else if(document.all["item"+(iItem+1)].style.display == "block")

{

document.all["item"+(iItem+1)].style.display = "none";

}

}

}

//-->

</script>

kannste damit was anfangen???

Link zu diesem Kommentar
Auf anderen Seiten teilen

ich kann dir leider nur beim (ie) teil helfen - von ns hab ich keine ahnung...

derzeitig funktioniert das ding ja noch so, dass es sich wieder zuklappt, wenn man nochmals draufklickt. richtig? soll das auch so bleiben? falls nich, kannste einfach folgendes mit eingeben:

if(ie)

{

document.all["item2"].style.display="none";

document.all["item4"].style.display="none";

....kommt drauf an, wieviele untermenüs du hast

if(document.all["item"+(iItem+1)].style.display == "none" || document.all["item"+(iItem+1)].style.display == "")

{

document.all["item"+(iItem+1)].style.display = "block";

}

else if(document.all["item"+(iItem+1)].style.display == "block")

{

document.all["item"+(iItem+1)].style.display = "none";

}

}

is zwar wahrscheinlich nicht die beste lösung, aber sollte funktionieren...

Link zu diesem Kommentar
Auf anderen Seiten teilen

jaja.... wenn man mal kurz drüber nachdenkt, müsste das so im (ns) teil aussehen.... da garantier ich aber für nix...

if(ns)

{

document.layers[2].visibility="hide";

document.layers[4].visibility="hide";

...

if(document.layers[iItem].visibility == "show")

{

for(var iI=iItem+1; iI<document.layers.length; iI++)

{

document.layers[iI].top -= document.layers[iItem].clip.height;

}

document.layers[iItem].visibility = "hide";

}

else if(document.layers[iItem].visibility == "hide")

{

for(var iI=iItem+1; iI<document.layers.length; iI++)

{

document.layers[iI].top += document.layers[iItem].clip.height;

}

document.layers[iItem].visibility = "show";

}

}

ich hoffe, ich konnte dir helfen...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von -cta-

http://www.derboesiminter.net/Portalseite/Portalseite1.html

das ist nur mal ein vorläufiger designvorschlag...mehr nicht...also nicht lästern....ok???

:D:D:D:D

ja nee... also da is ja nun die änderung, die ich da mal vorgeschlagen habe, nicht mit drin, richtig?

also wenn ich das jetzt richtig verstehe, willst du nun, wenn man nochmals auf "kontakt" klickt, also nachdem das ding schon auf ist, das es wieder zugeht, oder?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von beebof

ja nee... also da is ja nun die änderung, die ich da mal vorgeschlagen habe, nicht mit drin, richtig?

also wenn ich das jetzt richtig verstehe, willst du nun, wenn man nochmals auf "kontakt" klickt, also nachdem das ding schon auf ist, das es wieder zugeht, oder?

siehe oben:D

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von beebof

habs gesehen. :) sieht doch gut aus... :)

und was wollteste nu noch ändern?

hmm...

pass auf...

klick mal auf z.b. kontakt...

dann klappts auf....

jklick nochma drauf....

es bleibt auf....geht also nicht wiedda zu....wäre mir lieber....

obwohl....hmmm.....so ists auch ok....hmmm....

Link zu diesem Kommentar
Auf anderen Seiten teilen

hmmm.... da musste die routine a bissel umschreiben...

*grübel*

vielleicht so:

<script language="JavaScript">

<!--

function ExpandShrink(iItem)

{

iItem++;

if (ns)

{

for (var i=2; i<=maximale Anzahl an Untermenüs*2 - hier 12;i+=2)

{

if (i==iItem)

{

if (document.layers[i ].visibility=="show")

{

document.layers[i ].visibility="hide";

}

else

{

document.layers[i ].visibility="show";

}

}

else

{

document.layers[i ].visibility="hide";

}

}

}

if (ie)

{

for (var i=2; i<=maximale Anzahl an Untermenüs*2 - hier 12;i+=2)

{

if (i==iItem)

{

if (document.all["item"+i].style.display=="block")

{

document.all["item"+i].style.display="none";

}

else

{

document.all["item"+i].style.display="block";

}

}

else

{

document.all["item"+i].style.display="none";

}

}

}

}

// -->

</script>

so sollte es klappen. bin mir aber nich wirklich sicher... musst mal probieren

Nachtrag: an den stellen, wo '[i ]' steht, musste das leerzeichen wegnehmen - das gehört da eigentlich nich hin...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von beebof

hmmm.... da musste die routine a bissel umschreiben...

*grübel*

vielleicht so:

<script language="JavaScript">

<!--

....

// -->

</script>

so sollte es klappen. bin mir aber nich wirklich sicher... musst mal probieren

ich versuchs mal......thx...:)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Mach ein HTML-Menü. In Opera funzt da gar nix.

Und wenn Du Browser erkennen willst, dann niemals anhand eine Abfrage wie:

if (document.all)

..Das kann sehr oft in die Hose gehen und ist überhaupt nicht zukunftssicher. Überhaupt: Wenn es denn schon ein Java-Script Menü sein soll (wogegen jede Vernunft und Erfahrung spricht), dann würde ich an deiner stelle dieses NUR dem Explorer anbieten, und allen anderen Browsern ein statisches HTML-Menü aufzwängen.

Guck dir mal zur Browsererkennung das Codesnipsel an (vorsicht: Umbruch in URL möglich):

http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html

und denk dran, dass auch der USER_AGENT nicht immer korrekten Aufschluss gibt. Mitunter gibt es Software (z.B. norton) die es erlaubt, den USER_AGENT zu manipulieren. Alleine deswegen schon: statisches HTML-Menü.

Gruss

Matze

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...