Fabian: jQuery next() Selector Problem mit IE

Hallo!

Ich habe ein Menu gebastelt das auf Listen aufbaut. Ein wenig verschachtelt und vielleicht nicht ganz die feine englische Art, aber es funktioniert ... zu mindest im FF und Opera. Nur der IE macht nicht mit.

Es dreht sich um Folgendes: Ein Klick auf einen Link öffnet entweder eine neues Seite oder zeigt einen weiteren Ast in der Baumansicht.
Dafür verwende ich den jQuery Selector next() für den nächsten Knoten.
Zu sehen unter http://www.ka-jungs.de/volleyball/
Das Problem taucht in der zweiten Ebene unter "Mannschaften" auf. Während im FF ein weiteres Untermenu auf-/zuklappt, versteckt/zeigt der IE den nächsten Mannschaftsnamen.

Im HTML sieht das so aus:

    <div class="mannschaft gruppe">Mannschaften</div>  
      <ul>  
        <li class="mannschaft">Herren 1</li>  
        <ul class="versteckt">  
            <li><a href="mannschaft.php?mannschaft=Herren1">Team</a></li>  
            <li><a href="spielplan.php?mannschaft=Herren1">Spielplan</a></li>  
            <li><a href="#">Bilder</a></li>  
          </ul>  
        <li class="mannschaft">Herren 2</li>  
        <ul class="versteckt">  
            <li><a href="mannschaft.php?mannschaft=Herren2">Team</a></li>  
            <li><a href="spielplan.php?mannschaft=Herren2">Spielplan</a></li>  
            <li><a href="#">Bilder</a></li>  
          </ul>  
        <li class="mannschaft">Herren 3</li>  
        <ul class="versteckt">  
            <li><a href="mannschaft.php?mannschaft=Herren3">Team</a></li>  
            <li><a href="spielplan.php?mannschaft=Herren3">Spielplan</a></li>  
            <li><a href="#">Bilder</a></li>  
          </ul>  
....  

Der FF erkennt (meiner Ansicht nach richtig) die nächste Liste (ul) als Nachfolger der mit next() angesprochen wird.
Der IE wählt allerdings den nächsten Listenpunkt (li) als Nachfolger aus und überspringt die Liste.
Man kann jetzt monieren, dass die Liste nicht korrekt aufgebaut wurde: Die innere Liste mit den Unterpunkten müsste eingentlich auch ein Listenelement sein. Aber Anzeigetechnisch ist das "besser" und vor allen Dingen sehr viel einfacher zu realisieren.

Ach ja, das jQuery sieht so aus:

	$(".mannschaft").click(function() {  
		$(this).next().toggle('normal');  
	});

Ich wäre froh über einen Hinweis oder Vorschlag auf JS Basis, da mich das PHP Skript schon einige schlaflose Nächte gekostet hat. Falls ich aber zu falsch liege muss ich mich da wohl nochmal ran trauen.

Danke!

Gruß
Fabian

  1. Hi,

    Ich habe ein Menu gebastelt das auf Listen aufbaut. Ein wenig verschachtelt und vielleicht nicht ganz die feine englische Art,

    HTML kennt keine "feine englische Art oder nicht", sondern nur valide oder nicht valide.

    aber es funktioniert ...

    Das war schon immer bar jeder Aussagekraft.

    Im HTML sieht das so aus:
    [code lang=html]    <div class="mannschaft gruppe">Mannschaften</div>
          <ul>
            <li class="mannschaft">Herren 1</li>
            <ul class="versteckt">

    Fehler. UL darf als Kinder einzig und allein LI haben.

    Beseitige den Fehler.

    Man kann jetzt monieren, dass die Liste nicht korrekt aufgebaut wurde:

    Man kann nicht, man muss.

    Beseitige den Fehler.

    Die innere Liste mit den Unterpunkten müsste eingentlich auch ein Listenelement sein. Aber Anzeigetechnisch ist das "besser" und vor allen Dingen sehr viel einfacher zu realisieren.

    Unfug.

    Beseitige den Fehler.

    Ich wäre froh über einen Hinweis oder Vorschlag auf JS Basis, da mich das PHP Skript schon einige schlaflose Nächte gekostet hat. Falls ich aber zu falsch liege muss ich mich da wohl nochmal ran trauen.

    Ja.
    Beseitige den Fehler.

    MfG ChrisB

    --
    „This is the author's opinion, not necessarily that of Starbucks.“
    1. Hi,

      »» Ich habe ein Menu gebastelt das auf Listen aufbaut. Ein wenig verschachtelt und vielleicht nicht ganz die feine englische Art,

      HTML kennt keine "feine englische Art oder nicht", sondern nur valide oder nicht valide.

      Wenn es so einfach wäre, dann würden die Browser einfach valides Material akzeptieren und nicht valides verwerfen und "feine englische Art oder nicht" ist in diesem Sinne eine Allegorie ;)

      »» aber es funktioniert ...

      Das war schon immer bar jeder Aussagekraft.

      Hier könnte man philosophisch werden ....

      »» Die innere Liste mit den Unterpunkten müsste eingentlich auch ein Listenelement sein. Aber Anzeigetechnisch ist das "besser" und vor allen Dingen sehr viel einfacher zu realisieren.

      Unfug.

      Stimmt überhaupt nicht. Sieht so wirklich besser aus und war auch einfacher zu realisieren.

      Beseitige den Fehler.

      Einmal hätte auch gereicht. Aber vielen Dank für Deine Antwort!

      MfG ChrisB

      Gruß
      Fabian

      1. Hi,

        »» Die innere Liste mit den Unterpunkten müsste eingentlich auch ein Listenelement sein. Aber Anzeigetechnisch ist das "besser" und vor allen Dingen sehr viel einfacher zu realisieren.

        Unfug.
        Stimmt überhaupt nicht.

        Stimmtjadochaetsch.

        Sieht so wirklich besser aus

        Was an der Darstellung sollte sich mit validem Code nicht ebenfalls erreichen lassen?

        und war auch einfacher zu realisieren.

        Auch ganz und gar kein Argument.

        MfG ChrisB

        --
        „This is the author's opinion, not necessarily that of Starbucks.“