Bernd Zippl: per jjquery heruasbekommen wiebiele Objekte befinden isch in div

Hallo zusammen

ich wollte das wenn ich mit der Maus über ein Menü fahre, dass man keine 2 hover Effekte sieht wenn man auch mit der Tastatur darin rumsteuert.

Also erstellte ich eine Funktion: this.classname = "MenueHover" für onmouseover und bräuchte zusätzlich dazu aber noch die Auskunft wieviele Objekte/Links sich in solch einem div befinden, um den hover Effekt für die Tastatursteuerung auszublenden.

Und mit jjquery (\"a\").index(this) erhalte ich ja nur die gesamte Anzahl aller Links.

Also wie muss ich das schreiben das beim darüberfahren über einen Link gleich erfasst werden kann wiebiele Links sich in dieser Tabelle/div befinden?

Danke Euer Bernd

  1. Om nah hoo pez nyeetz, Bernd Zippl!

    Gestalte solcherart Effekte mit CSS. Nutze für Mausgeschichten die Pseudoklasse :hover und für Tastaturnavigation die Pseudoklasse :active.

    Matthias

    --
    1/z ist kein Blatt Papier.

    1. Halle Matthias

      und Vielen Dank für Deine Infos. Nur kann es dann nbicht vorkommen das Einträge doppelt markiert werden? Und ich müsste ja ständig den Focus setzen, jedenfalls per Tastaturbedienung. Also entschied ich mich das nachzuprogrammieren, was ich aber nichtg hinbekommen will.

      Danke Gruß Bernd

      1. Om nah hoo pez nyeetz, Bernd Zippl!

        Und ich müsste ja ständig den Focus setzen, jedenfalls per Tastaturbedienung.

        ?? In dem Moment, wo du mit der Tastatur ein Element annavigierst, erhält dieses den Focus.

        Matthias

        --
        1/z ist kein Blatt Papier.

        1. Om nah hoo pez nyeetz, Bernd Zippl!

          Und ich müsste ja ständig den Focus setzen, jedenfalls per Tastaturbedienung.

          ?? In dem Moment, wo du mit der Tastatur ein Element annavigierst, erhält dieses den Focus.

          Matthias

          Hallo Matthias

          sorry ich muss den Beitrag von weiter oben wiederholen. Wie dieser da hinkam weis ich auch nicht und es waren die ganz falschen Zeilen. Ich sitze halt völlig ratlos hier davor.

          Also Entschuldigung und auf ein Neues:
          mit markieren meinte ich dieses das der hover Effekt über zwei Links angezeigt wird. was ich verhindern will. Und so will ich diese Funktion nachbauen:

          case 38:  
          if (top.EntryIndex > -1) top.document.getElementsByTagName("a")[top.EntryIndex].className = ""  
          top.EntryIndex = top.EntryIndex -1  
          if (top.EntryIndex < 0) top.EntryIndex = 0  
          top.document.getElementsByTagName("a")[top.EntryIndex].className = "MenueHover"  
          break  
          case 40:  
          if (top.EntryIndex > -1) top.document.getElementsByTagName("a")[top.EntryIndex].className = ""  
          top.EntryIndex = top.EntryIndex +1  
          if (top.EntryIndex > top.document.getElementsByName("Menues")[top.MenueID].getElementsByTagName("a").length-1) return false  
          top.document.getElementsByTagName("a")[top.EntryIndex].className = "MenueHover"  
          break  
          
          

          Doch sitze ich ratlos vor der Kiste und frage mich wieso denn nr der Link nach Oben markiert wird, wenn ich mit der Maus über winen Link fahre. Im ersten Menü funktioniert alles einwandfrei, aber in den weiteren ist ohne Maus nix zu sehen????????

          Ich hoffe darauf Hilfe zu bekommen um das realisieren zu können. Denn ich bin mir fast sicher das dies die richtige Variante ist.

          Also mächte ich mich bedanken.

    2. Hallo Matthias

      Vielen Dank, doch ist ja der Hintergrund das keine 2 Links markiert werden. Und wenn ich mit hover mit der Maus markierre und dann mit der Tastatur mich zusätzlich tätig werde sind doch zwei Objekte markiert.

      Und außerdem sollte ich mit der Tastatur doch dann stets den Focus auf einen Link setzen, was aber im Moment wohl die bessere Variante sein sollte. Aber wie gesagt sollen keine 2 Links markiert sein.

      Danka Gruß Bernd Zippl

      1. Om nah hoo pez nyeetz, Bernd Zippl!

        Vielen Dank, doch ist ja der Hintergrund das keine 2 Links markiert werden. Und wenn ich mit hover mit der Maus markierre und dann mit der Tastatur mich zusätzlich tätig werde sind doch zwei Objekte markiert.

        Und außerdem sollte ich mit der Tastatur doch dann stets den Focus auf einen Link setzen, was aber im Moment wohl die bessere Variante sein sollte. Aber wie gesagt sollen keine 2 Links markiert sein.

        Du solltest nicht versuchen, Browserfunktionalitäten zu verändern. Wenn ein User zwei Links markieren möchte, dann soll er das tun, etwa weil er den Text kopieren möchte. Es ist in keiner Weise notwendig, in einer Navigation den Focus manuell zu setzen.

        Matthias

        --
        1/z ist kein Blatt Papier.

        1. Hallo

          mit markieren meinte ich dieses das der hover Effekt über zwei Links angezeigt wird. was ich verhindern will. Und so will ich diese Funktion nachbauen:

          case 50: case 51: case 52: case 53: case 54: case 55:  
          top.MenueDown(charCode - 50)  
          AddMenueKeys()  
          break  
          case 98: case 99: case 100: case 101: case 102: case 103:  
          top.MenueDown(charCode - 98)  
          AddMenueKeys()  
          break  
          
          

          Doch sitze ich ratlos vor der Kiste und frage mich wieso denn nr der Link nach Oben markiert wird, wenn ich mit der Maus über winen Link fahre. Im ersten Menü funktioniert alles einwandfrei, aber in den weiteren ist ohne Maus nix zu sehen????????

          Ich hoffe darauf Hilfe zu bekommen um das realisieren zu können. Denn ich bin mir fast sicher das dies die richtige Variante ist.

          Also mächte ich mich bedanken.

          Gruß Bernd

          1. Om nah hoo pez nyeetz, Bernd Zippl!

            Ich hoffe darauf Hilfe zu bekommen um das realisieren zu können. Denn ich bin mir fast sicher das dies die richtige Variante ist.

            Ich bin sicher, dass du irgendetwas verkehrt machst.
            * Zeig die Seite
            * Schau dir diesen Artikel an. Die Navigation funktioniert auch ohne JavaScript

            Matthias

            --
            1/z ist kein Blatt Papier.

  2. Hallo Bernd!

    ich wollte das wenn ich mit der Maus über ein Menü fahre, dass man keine 2 hover Effekte sieht wenn man auch mit der Tastatur darin rumsteuert.

    Ich schließe mich grundsätzlich der Meinung von Matthias bezüglich deines Vorhabens an, aber ...

    Also erstellte ich eine Funktion: this.classname = "MenueHover" für onmouseover und bräuchte zusätzlich dazu aber noch die Auskunft wieviele Objekte/Links sich in solch einem div befinden, um den hover Effekt für die Tastatursteuerung auszublenden.

    Und mit jquery (\"a\").index(this) erhalte ich ja nur die gesamte Anzahl aller Links.

    Hier verstehe ich deinen Ansatz nicht ..., denn wenn ich dein Vorhaben richtig verstanden habe, dann willst du doch den CSS Focus-Effekt für_alle_Links deaktivieren, sobald ein Link per Maus gehovert ist (was, wie Matthias schon angemerkt hat, keine "gute Idee" ist).

    Also wie muss ich das schreiben das beim darüberfahren über einen Link gleich erfasst werden kann wiebiele Links sich in dieser Tabelle/div befinden?

    Das klingt nebenbei bemerkt schwer nach semantisch "nicht korrektem" Markup ...! ;-)

    BTW: Jeder kann sich mal vertippen, aber dein Posting vermittelt schon eher den Eindruck, dass du dir eher keinerlei Mühe gegeben hast, darauf zu achten, was du geschrieben hast. Das fängt schon mit dem Titel an:"per jjquery heruasbekommen wiebiele Objekte befinden isch in div", was übersetzt vermutlich soviel heißen soll wie:"Per jQuery herausfinden, wie viele Objekte sich in einem Div befinden".

    Gruß Gunther