wiedermal Treemenüs

Chaosengel_Gabriel

Erfahrenes Mitglied
Hallo Leute ^^
Ich bin auf der Suche nach einer Lösung für ein Treemenü...
Das ganze würde ich gerne mit JavaScript machen, allerdings fehlen mir jegliche Kenntnisse in dem Bereich ^^
Im Tutorial Bereich ist ein sehr beeindruckendes Tut von Sven, allerdings is das für meine Zwecke viel zu komplex und kompliziert ^^

Ich brauch da keine Icons, die ich anklicke zum auf und zuklappen oder sonstigen schnick-schnack...
sondern:
ich-bin-der-klapper
|-ich-werde-geklappt
|-ich-auch
|-und-ich-erstrecht
ich-bin-noch-ein-klapper
|-und-ich-werd-wieder-geklappt

wird auf den obergeordneten Link oder sonstwas geklickt klappt das Menü darunter auf, wird nochmal drauf geklickt wirds wieder zugeklappt.

Ich danke im Voraus für eure Hilfe :D
 
Beides schon genutzt Maik ;)

Bei Google werd ich zwar fündig, aber auch alles Scripte, die Icons vor den Links nutzen und sich teilweise über mehrere *.js Files erstrecken...
Die foreneigene SuFu hab ich direkt vor dem Schreiben des Threads genutzt, nachdem ich in den Tutorials geschaut habe, und fand auch nur die komplexen ^^

Das googeln nach Klappmenüs kommt dem von mir gesuchten schon deutlich näher...
Da finde ich einzeilige JS-Scripts, allerdings unter Verwendung von DHTML, aber ich will das Menü ja nich über den Rest klappen, sondern die Navi-Leiste nach unten verschieben ^^
 
Hinter "DHTML" (Dynamic HTML) versteckt sich nichts anderes, als Javascript.

mfg Maik
 
Ich hab nu doch wieder ein Problem ^^
Ich benutze immer noch den Script, den ich im vorherigen post als Fund angegeben habe.
Allerdings...
Im IE alles perfekt, aber im FF wills nich so ganz...
Beim laden der Seite wird alles zu geklappt, aber wenn man dann wo drauf klickt, dann wirds im FF nich aufgeklappt.

Woran kann das liegen
Und nen Ansatz wie ich den Script dahin gehend erweitere, dass aufgeklapptes menü offen bleibt, trotz bewegung auf der Seite fänd ich auch recht pratisch =)

thxes ^^

[EDIT]
Ich bin dem Prob etwas näher gekommen ^^
So wie ich das sehe liegts an den aktuellen Browsern allgemein.
Beim IE6 läuft es fehlerfrei. Aufwärts treten dann die genannten probleme auf.
 
Zuletzt bearbeitet:
Ich verwende FF 3.5 und bei mir funktioniert der SimpleTree im Beispiel einwandfrei. Kannst du eventuell deine Implementierung irgendwo online stellen?
 
Den Script habe ich 1:1 kopiert und meine Navi-Liste entsprechend geändert.
Den Script hab ich mit:
Code:
<script language="javascript1.2" src="klapp.js">
Im Head der HTML File eingebunden...

Die Navi schaut so aus:
Code:
<ol id="root">
<li><a href="#" onclick="toggleBullet(this)">FerienSpaß</a></li>
<ol>
<li><a href="#" onclick="toggleBullet(this)">Teilnehmer</a></li>
<ol>
.
.
.
.
.
</ol>
</ol>
</ol>

die klapp.js:
Code:
// Menüklapper
function toggleBullet(elm) {
 var newDisplay = "none";
 var e = elm.nextSibling; 
 while (e != null) {
  if (e.tagName == "OL" || e.tagName == "ol") {
   if (e.style.display == "none") newDisplay = "block";
   break;
  }
  e = e.nextSibling;
 }
 while (e != null) {
  if (e.tagName == "OL" || e.tagName == "ol") e.style.display = newDisplay;
  e = e.nextSibling;
 }
}

function collapseAll() {
  var lists = document.getElementsByTagName('OL');
  for (var j = 0; j < lists.length; j++) 
   lists[j].style.display = "none";
  lists = document.getElementsByTagName('ol');
  for (var j = 0; j < lists.length; j++) 
   lists[j].style.display = "none";
  var e = document.getElementById("root");
  e.style.display = "block";
}

Im Beispiel auf der Site hab ich auch keine Probs...
Nur wenns ichs hier im Intranet nutzen will gibts bei neueren Browsern Probleme =/

Online setzen kann ichs leider grade nicht auf die schnelle.

[EDIT]
Durchleuchtung mittels des JavaScript-Debugger im FF ergibt:
Code:
Error loading URL <XStringBundle>: [Exception... "Component returned failure code: 0x804b000a [nsIIOService.newChannel]" nsresult: "0x804b000a (<unknown>)" location: "JS frame :: chrome://venkman/content/venkman-url-loader.js :: _getChannelForURL :: line 54" data: no].
Error loading URL <XStringBundle>: 2147500037.

Das soll wohl der Fehler sein, weshalb es auf meiner Site nicht geht...
 
Zuletzt bearbeitet:
Soll in deinem Beispiel Teilnehmer ein Unterpunkt von Ferienspaß sein?
Dann müsste das aber in etwa so ausschauen

Code:
<ol id="root">
 <li><a href="#" onClick="toggleBullet(this)">Ferienspaß</a>
  <ol>
   <li><a href="#" onClick="toggleBullet(this)">Teilnehmer</a>
   </li>
  </ol>
 </li>
</ol>

Das JavaScript funktioniert bei mir prinzipiell so wie du es hast. Die Fehler kann ich auch nicht reproduzieren
 
Code:
<ol id="root">
 <li><a href="#" onClick="toggleBullet(this)">Ferienspaß</a>
  <ol>
   <li><a href="#" onClick="toggleBullet(this)">Teilnehmer</a>
   </li>
  </ol>
 </li>
</ol>

Ungewöhnlicher Aufbau der Liste so finde ich...
So is die untergeordnete Liste ja im selben Listen-Element wie der Ober-Begriff.
Gut das soll so wohl auch sein schätze ich, aber mir isses halt neu o,O

Ich hab die Liste nach diesem Muster aufgebaut:
Code:
<ol>
 <li>K</li>
  <ol>
   <li>K</li>
    <ol>
      <li>L</li>
      <li>L</li>
      <li>L</li>
     </ol>
   <li>K</li>
     <ol>
      <li>L</li>
      <li>L</li>
      <li>L</li>
     </ol>
  </ol>
 <li>K</li>
  <ol>
   <li>K</li>
    <ol>
      <li>L</li>
      <li>L</li>
      <li>L</li>
     </ol>
   <li>K</li>
     <ol>
      <li>L</li>
      <li>L</li>
      <li>L</li>
     </ol>
  </ol>
</ol>

K sind die #-Links zum auf/zu klappen
L sind die Links zu den Inhalten

Ich hoffe das is deutlich genug erkennbar so ^^
 
Zurück