andynail: Index des aktuellen elemmentes herausfinden

Hallo zusammen

Ich zeige auf meiner Seite eine Link Liste und würde gerne die Möglichkeit geben diese per Tastatur auswählen zu können. Sprich mit den Tasten Auf und Ab die Links auswählen zu können.

Doch würde ich gerne wissen welcher Link zZ ausgewählt, sprich der Aktuelle ist. Denn er konnte ja gerade geöffnet worden sein, oder es gibt auch eine Markieren Schaltfläche für jeden Link auf der Seite, welche dann wieder den aktuellen Lihnk markieren soll.

Ich hatte für die gleiche Situation für Menüs eine Möglichkeit mit jquery gefunden:

				document.activeElement.className = ""  
				var Index = $(document.activeElement).closest("tr").index();  
				if (Index == 0) Index = document.getElementsByName("Menues")[top.MenueID].getElementsByTagName("a").length  
				document.getElementsByName("Menues")[top.MenueID].getElementsByTagName("a")[Index-1].focus();  
				document.getElementsByName("Menues")[top.MenueID].getElementsByTagName("a")[Index-1].className = "a:hover";  
b

Doch in dieser Situation können gut und gerne auch mehrere Links in einer Zelle stehen. Also doch bitte nur der Index des aktuell ausgewählten Links!

Zu dem Thema wie ich es erreichen soll den Link bei der Auswahl  so darstellen zu können wie als ob mit der Maus darübergefahren wird und dass auch zu dessen Sichtbarkeit gescrollt wird, werde ich ja noch kommen. Aber erst einmal zu diesem Thema. Denn ich will ja auch nicht immer gleich mit Variablen arbeiten und dann mit i = i + 1 Links auswählen.

Danke Gruß Andreas

  1. [latex]Mae  govannen![/latex]

    Hallo zusammen

    Ich zeige auf meiner Seite eine Link Liste und würde gerne die Möglichkeit geben diese per Tastatur auswählen zu können. Sprich mit den Tasten Auf und Ab die Links auswählen zu können.

    Diese Funktionalität (Links per Tastatur auswählen) sollte jeder Browser bereits von Hause aus mitbringen (nur halt nicht mit auf/ab)

    Du solltest da nicht reinpfuschen (im Sinne von: Der Nutzer verbindet mit auf/ab eine ganz bestimmte Verhaltensweise, wenn du dies mit einer anderen Funktionalität „überschreibst“ (so es denn geht) nimmst du ihm diese komplett weg.

    Stur lächeln und winken, Männer!
    Kai

    --
    It all began when I went on a tour, hoping to find some furniture
     Followed a sign saying "Beautiful Chest", led to a lady who showed me her best)
    SelfHTML-Forum-Stylesheet
  2. Om nah hoo pez nyeetz, andynail!

    im Wiki gibt es [Eine zugängliche Multilevel-Dropdown-Navigation](Eine zugängliche Multilevel-Dropdown-Navigation), vielleicht hilft dir das weiter.

    Matthias

    --
    1/z ist kein Blatt Papier.

    1. Om nah hoo pez nyeetz, Matthias Apsel!

      Linkkorrektur

      Matthias

      --
      1/z ist kein Blatt Papier.

      1. Hallo Matthias

        erst einmal Danke für Deine Antwort. Aber das Bedienen per Tastatur soll ja einfacher gehen. Ich will nicht die Tab Taste bzw. mit auch in Kombination der Umschalttaste verwenden müssen, sondern Einträge per auf und ab Taste auswählen können. Es muss doch nicht immer gleich so schlecht sein wenn es anders als der Standard ist.

        Also bleiben wir doch bitte beim Thema: Wie bekomme ich den Index des aktuell ausgewählten Links heraus? Und dieses auch ohne irgend welche weitere Werte setzen zu müssen wie in dem Beispiel der Tabindex.

        Danke Gruß Andreas

  3. مرحبا

    Doch würde ich gerne wissen welcher Link zZ ausgewählt, sprich der Aktuelle ist.

    "Entlinke" einfach den Link zur Aktuellen Seite. Wie erstellst du dein Menu?

    <ul id="nav">  
    <li><a href="#">Home</a></li>  
    <li><a href="#">Kontakt</a></li>  
    <li>Impressum</li>  
    </ul>
    

    Dann kannst du ganz leicht ermitteln, welche Seite die Aktuelle ist.

    mfg

    --
    Die neuen 4 Jahreszeiten: Frühling, ARSCHLOCH, Herbst und Winter!
    1. Om nah hoo pez nyeetz, Malcolm Beck´s!

      Dann kannst du ganz leicht ermitteln, welche Seite die Aktuelle ist.

      Ich glaube, es geht nicht um die aktuelle Seite sondern um den Link, der :active ist.

      Matthias

      --
      1/z ist kein Blatt Papier.

      1. مرحبا

        Dann kannst du ganz leicht ermitteln, welche Seite die Aktuelle ist.

        Ich glaube, es geht nicht um die aktuelle Seite sondern um den Link, der :active ist.

        Ich denke nicht. Er möchte wissen, auf welcher Seite der User sich befindet, damit er den Tab-Index setzen kann.
        Er will ja eine Bedienung per Tastatur, nicht per Maus.
        <http://de.selfhtml.org/css/eigenschaften/pseudoformate.htm#link_visited_focus_hover_active@title=:active = für gerade angeklickte Elemente>

        <ul>  
        <li><a href="#">Home</a></li>  
        <li><a href="#">Kontakt</a></li>  
        <li>Impressum</li>  
        <li><a href="#">Anfahrt</a></li>  
        </ul>
        

        Wenn du als User jetzt die Pfeiltaste nach oben klickst, soll als erstes der Link zu Kontakt fokussiert werden, Pfeil nach unten fokussiert Anfahrt (oder umgekehrt). Streng genommen will er :active nachbauen, da :active sich von Haus aus wie gewünscht verhält.

        mfg

        --
        Die neuen 4 Jahreszeiten: Frühling, ARSCHLOCH, Herbst und Winter!
        1. Om nah hoo pez nyeetz, Malcolm Beck´s!

          Streng genommen will er :active nachbauen, da :active sich von Haus aus wie gewünscht verhält.

          +1

          Matthias

          --
          1/z ist kein Blatt Papier.

          1. Hallo zusammen

            es ist ja so, dass wenn ich auf einen Link den Focus setze, kann ich klar dessen Style so gestalten wie dessen des hover. Doch wenn ich jetzt wieder mit der Maus über die Liste fahre, sieht das ja so aus als ob 2 Links markiert seien. Und das darf nicht sein. Sobald die Maus über die Liste fährt, soll sich der per Tastatur ausgewählte Link wieder ohne Hervorhebungen in die Liste einreihen. Und dass dies mit einer Funktion möglich sei, wie zub. onmouseover var ActiveLink.className = "" ist ja klar. Doch würde ich sagen dass dies doch zu viel Rechenleistung brauchen könnte.

            Und dass ich per i=i+1 document.getElementsByTagName("a")[i].style.className = "Aktiver" die Links nach und nach markieren könnte leuchtet ja auch ein. Doch wollte ich auf Variablen verzichten und viel lieber den Index des aktuellen Links herausfinden.

            Danke für Eure Hilfe Gruß Andreas

            1. Hi,

              Sobald die Maus über die Liste fährt, soll sich der per Tastatur ausgewählte Link wieder ohne Hervorhebungen in die Liste einreihen. Und dass dies mit einer Funktion möglich sei, wie zub. onmouseover var ActiveLink.className = "" ist ja klar. Doch würde ich sagen dass dies doch zu viel Rechenleistung brauchen könnte.

              Auf welchem Casio Taschenrechner aus dem letzten Jahrtausend soll die Seite denn angezeigt werden …?

              MfG ChrisB

              --
              RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
            2. Om nah hoo pez nyeetz, andynail!

              Und dass ich per i=i+1 document.getElementsByTagName("a")[i].style.className = "Aktiver" die Links nach und nach markieren könnte leuchtet ja auch ein. Doch wollte ich auf Variablen verzichten und viel lieber den Index des aktuellen Links herausfinden.

              Ich glaube, es geht schneller und einfacher, wenn du nach einem hover einfach _alle_ anderen Linkelemente auf normal setzt.

              Matthias

              --
              1/z ist kein Blatt Papier.

            3. مرحبا

              es ist ja so, dass wenn ich auf einen Link den Focus setze, kann ich klar dessen Style so gestalten wie dessen des hover. Doch wenn ich jetzt wieder mit der Maus über die Liste fahre, sieht das ja so aus als ob 2 Links markiert seien.

              Wer surft denn so?

              Und dass dies mit einer Funktion möglich sei, wie zub. onmouseover var ActiveLink.className = "" ist ja klar. Doch würde ich sagen dass dies doch zu viel Rechenleistung brauchen könnte.

              Mit wieviel Tausend Links rechnest du? 1.000, 10.000 oder gar 100.000 Links im Menu?

              Und dass ich per i=i+1 document.getElementsByTagName("a")[i].style.className = "Aktiver" die Links nach und nach markieren könnte leuchtet ja auch ein. Doch wollte ich auf Variablen verzichten und viel lieber den Index des aktuellen Links herausfinden.

              Irgendwie musst du die Aktive Seite kenntlich machen, so oder so. Eine bewährte Praxis ist, den Link zur Aktiven Seite zu "entlinken".

              mfg

              --
              Die neuen 4 Jahreszeiten: Frühling, ARSCHLOCH, Herbst und Winter!
              1. Hallo

                jetzt habßs ich gefunden:

                var Index = $('a').index(document.activeElement);  
                
                

                Und wenn ein Link den Focus erhält, setzt dieser die Variable ActiveLink = this und er erhält das css Format Aktiv. Und wenn ich jetzt mit der Maus über den Linkbereich fahre, setze ich auf ActiveLink die Klasse "", was ja auch einwandfrei funktioniert.

                Doch steht die Maus bereits auf einem Link und ich fange an mit der Maus zu bedienen, bleibt der Link unter der Maus mit dem hover Format formatiert, so dass es aussieht als ob 2 Objekte formatiert sein würden. Und dann spielte ich ein zwei Mal sudoku auf zeit.de, kam wieder zurück auf meine Seite, und erhielt eine Fehlermeldung, was nicht mehr nachvollziehbar ist. Denn sitze ich vor der Seite und arbeite mit dieser ist nix der Gleichen zu sehen. USW... gibt es noch die einen oder anderen Probleme die zu lösen sind.

                Aber erst einmal habe ich erreicht was ich anvisiert hatte: Die Linkliste und die Menüs per Tastatur bedienen zu können.

                Gruß Andreas