Einzelnen Beitrag anzeigen

quendolineDD

Registriert seit: 19. Apr 2007
Ort: Dresden
781 Beiträge
 
Turbo Delphi für Win32
 
#1

[Javascript] Was ist an der Funktion falsch?

  Alt 27. Jan 2008, 14:49
Hallo DP

Ich hab hier eine Funktion, welche beim Klicken auf ein[*] ausgelöst wird. An die Funktion wird das geklickte[*] übergeben.

Dabei werden alle unter-li's angezeigt, oder wieder ausgeblendet, je nachdem was sie gerade sind. Nun wollte ich das ganze dahingehend erweitern, das alle anderen li's welche offen sind, ausgeblendet werden; sodass letzndlich immer nur ein Optionsmenu geöffnet ist. Vielleicht findet ihr den Wurm, ich hab schon etliche Varianten probiert und vom logischen her hätte es eigentlich schon längst gehen müssen ^^

Code:
function mShow(e)
{
   if (!e.getElementsByTagName)
      return;

   var subobj = e.getElementsByTagName('li');

   if (!subobj)
      return;

   for (j = 0; j < subobj.length; j++)
   {
      subobj[j].style.display = (subobj[j].style.display == 'block') ? 'none' : 'block';
   }
   
   var otherobj = document.getElementsByTagName('ul');
   var otherliobj = otherobj.getElementsByTagName('li');

   for (i = 0; i < otherliobj.length; i++)
   {
      otherliobj[i].style.display = 'block';
   }
}
Aufgerufen wird das ganze wie folgt:

Code:
<ul id="menu">
  <li id="opt1" class="show" onclick="mShow(this);">Options 1
    <ul>[*][url="#"]Item 1[/url][*][url="#"]Item 1[/url][*][url="#"]Item 1[/url][*][url="#"]Item 1[/url][/list]

  <li id="opt2" onclick="mShow(this);">Options 2
    <ul>[*][url="#"]Item 2[/url][*][url="#"]Item 2[/url][*][url="#"]Item 2[/url][*][url="#"]Item 2[/url][/list]

  <li id="opt3" onclick="mShow(this);">Options 3
    <ul>[*][url="#"]Item 3[/url][*][url="#"]Item 3[/url][*][url="#"]Item 3[/url][/list]

  <li id="opt4" onclick="mShow(this);">Options 4
    <ul>[*][url="#"]Item 4[/url][*][url="#"]Item 4[/url][*][url="#"]Item 4[/url][*][url="#"]Item 4[/url][*][url="#"]Item 4[/url][/list] [/list]
Es klappt hiermit ja nichtmal, alle li's wieder auszublenden ... ich versteh das nicht o.O

MfG
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.
  Mit Zitat antworten Zitat