Frank Schüler: div-Tag Problem

Ein Hallo an alle

Ich habe ein Javascript das ein Scrollmenü erzeugt. Im IE funktioniert das auch alles einwandfrei. Nur im Mozilla Firefox hat das Script ein Problem mit dem div-Tag im Menü. Unter < http://www.codertools.de/Test/index.htm> könnt Ihr ein vereinfachtes Beispiel vom Menü ansehen. Wenn ich den div-Bereich rausnehme funktioniert das Menü auch im Firefox. Den div-Bereich benötige ich aber. Hat jemand eine Idee, woran das liegen könnte bzw. wie kann ich dieses Problem im Script abstellen.

MFG Frank

  1. hi,

    Hat jemand eine Idee, woran das liegen könnte bzw. wie kann ich dieses Problem im Script abstellen.

    ohne mir das genauer anzusehen, würde ich vermuten, dass beim berühren des inneren, gelben divs das onmouseout-event des äußeren divs feuert.

    du müsstest also dafür sorgen, dass nicht sofort beim onmouseout auf dem äußeren div das ausfahren gestoppt und das wieder-einfahren gestartet wird - sondern erst noch prüfen, ob sich der cursor dabei _nicht_ über dem inneren div befindet (was _dessen_ onmouseover auslösen dürfte).

    gruß,
    wahsaga

    --
    "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
    1. du müsstest also dafür sorgen, dass nicht sofort beim onmouseout auf dem äußeren div das ausfahren gestoppt und das wieder-einfahren gestartet wird - sondern erst noch prüfen, ob sich der cursor dabei _nicht_ über dem inneren div befindet (was _dessen_ onmouseover auslösen dürfte).

      Stimmt, und das geht so:

      <div id="id" onmouseout="if (document.all) {
                          if (!this.contains(event.toElement))                     changeMenu('');}
                        else if (document.getElementById) {
                          if (!containsNN6(this, event.relatedTarget))                     changeMenu('');}">

      mit

      function containsNN6 (container, containee)
               {
               var isParent = false;
               do {
               if ((isParent = container == containee))
               break;
               containee = containee.parentNode;
               }
               while (containee != null);
               return isParent;
               }

      Gruß
      Avalon

      1. du müsstest also dafür sorgen, dass nicht sofort beim onmouseout auf dem äußeren div das ausfahren gestoppt und das wieder-einfahren gestartet wird - sondern erst noch prüfen, ob sich der cursor dabei _nicht_ über dem inneren div befindet (was _dessen_ onmouseover auslösen dürfte).

        Hi

        Danke für Deine Antwort. Ich habe mal Deinen Code eingebaut. Geht dennoch nicht. Fehlt da nicht noch eine Function "changeMenu". Ich habe Leider auch nicht soviel Ahnung von Javascript.

        MFG Frank

        1. Danke für Deine Antwort. Ich habe mal Deinen Code eingebaut. Geht dennoch nicht. Fehlt da nicht noch eine Function "changeMenu". Ich habe Leider auch nicht soviel Ahnung von Javascript.

          Stimmt! An die Stelle kommt die Funktion, die bei Dir durch den onmouseout event aufgerufen wird.

          Gruß
          Avalon

          1. Stimmt! An die Stelle kommt die Funktion, die bei Dir durch den onmouseout event aufgerufen wird.

            Hallo Avalon

            Ich habe nun verschiedene Sachen ausprobiert, aber es geht irgentwie immer noch nicht. Jetzt scrollt zwar das Menü raus, aber nicht mehr zurück. *total verzweifelt* Könntest Du mir bitte den Code des Menüs komplett hier posten. Ich bekomme das einfach nicht gebacken.

            MFG Frank

            1. hi,

              Könntest Du mir bitte den Code des Menüs komplett hier posten.

              nein.
              SELF heißt selber machen.

              wenn du javascript noch nicht hinreichend gut beherrschst - dann setze es nicht ein, und lerne es erst mal.

              gruß,
              wahsaga

              --
              "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
              1. wenn du javascript noch nicht hinreichend gut beherrschst - dann setze es nicht ein, und lerne es erst mal.

                Hallo wahsaga

                Ok, Punkt für Dich. Aber dann würde ich hier ja nicht fragen. Der Sinn eines Forums ist es doch, anderen zu helfen.

                MFG Frank

                1. hi,

                  Der Sinn eines Forums ist es doch, anderen zu helfen.

                  ja, aber nicht mit "komplettem code", so wie du ihn haben wolltest - sondern mit hilfe zur selbsthilfe.

                  gruß,
                  wahsaga

                  --
                  "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
  2. wenn du denn border von dem div-bereich wegmachst dürfte es auch mit sämtlichen mozillabrowsern und netscape gehen.
    bei denen gehört der rand nicht(!) zu div dazu soweit ich weiss
    ich bin mir nicht ganz sicher, aber es dürfte eienen versuch wert sein

    1. wenn du denn border von dem div-bereich wegmachst dürfte es auch mit sämtlichen mozillabrowsern und netscape gehen.
      bei denen gehört der rand nicht(!) zu div dazu soweit ich weiss
      ich bin mir nicht ganz sicher, aber es dürfte eienen versuch wert sein

      Hallo janic

      Im eigentlichen Menü, ist der Rand = 0, nur im diesem Beispiel habe ich einen Rand hinzugefügt. Funktioniert dennoch nicht. Aber trotzdem Danke für Deine Hilfe.

      MFG Frank

    2. wenn du denn border von dem div-bereich wegmachst dürfte es auch mit sämtlichen mozillabrowsern und netscape gehen.
      bei denen gehört der rand nicht(!) zu div dazu soweit ich weiss
      ich bin mir nicht ganz sicher, aber es dürfte eienen versuch wert sein

      Daran liegt es nicht. Wahsaga hatte schon recht, der innere div deckt den äußeren ab und so wird für den äußeren ein onmouseout ausgelöst.

      Gruß
      Avalon