Thomas Arns: Anzeige von Tooltipps über disable-ten Elementen

Hallo!

Folgendes würde ich gerne anzeigen:
In einer Tabellenzeile stehen ein Text und ein Inputfeld.
Die Tabellenzeile zeigt bei onMouseover einen Tooltipp in einem anderen div-Bereich an.
Das klappt prima, bis das input auf disabled gesetzt wird.
Dann wird der Tooltipp nicht mehr angezeigt, wenn ich mit der Maus über dem input bin.

etwas code dazu:
<tr onmouseover='zeigeTooltippAn();'
 onmouseout='zeigeTooltippNichtMehrAn()'>
 <td><font>Text:</font></td>
 <td><input type='text' value='...' onfocus='onfocusTextfield(this)' onblur='onblurBetrag(this, 99.99, 0, 2)'>
<font class='standard'>&nbsp;%</font></td>
</tr>

Wie kann ich trotz "disabled" den Tooltipp anzeigen, auch wenn die Maus sich über dem disable-ten Element befindet???

Danke schon mal.
Thomas

  1. hi,

    Die Tabellenzeile zeigt bei onMouseover einen Tooltipp in einem anderen div-Bereich an.
    Das klappt prima, bis das input auf disabled gesetzt wird.

    Dann zeige uns bitte, wie deine Tooltipp-Funktionen aussehen.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. hi,

      Die Tabellenzeile zeigt bei onMouseover einen Tooltipp in einem anderen div-Bereich an.
      Das klappt prima, bis das input auf disabled gesetzt wird.

      Dann zeige uns bitte, wie deine Tooltipp-Funktionen aussehen.

      Hallo Wahsaga!
      Das wird komplizierter ;-))) (Javascript holt sich ein Element "Assistent" eines weiteren Frames, ruft dann mit Hilfe eines Timers eine Funktion auf, die den Tooltipp sichtbar schaltet, sowie einen weiteren Timer, der nach einer bestimmten Zeit den Tooltipp wieder abschaltet.)

      Ich denke auch nicht, dass es hieran liegt, denn für die komplette Zeile wird der Tooltipp angezeigt, nur eben nicht, wenn die Maus sich über dem disableten Bereich befindet, als habe dann das onMouseout-Event gefeuert.
      Ich vermute halt nur, dass bei "disabled" kein Event gefeuert werden kann und auch das onMouseover des umgebenden Elements blockiert wird.
      Gruß
      Thomas

      1. Ich denke auch nicht, dass es hieran liegt, denn für die komplette Zeile wird der Tooltipp angezeigt, nur eben nicht, wenn die Maus sich über dem disableten Bereich befindet, als habe dann das onMouseout-Event gefeuert.
        Ich vermute halt nur, dass bei "disabled" kein Event gefeuert werden kann und auch das onMouseover des umgebenden Elements blockiert wird.

        und diese Frage läßt sich nur beantworten, wenn man wüßte ob die Bibliothek die du vermutklich nutzt da irgendwie dazwischen funkt.

        Das Folgende funktioniert bei mir

          
        <table>  
        <tr>  
        <td onmouseover="alert(this);">  
        <input type="text" disabled>  
        </td>  
        </tr>  
        </table>  
        
        

        Struppi.

        --
        Javascript ist toll (Perl auch!)
        1. Hallo Struppi!

          Ich hab inzwischen noch einiges ausprobiert und festgestellt, dass der IE mit meinen Seiten keine Probleme hat.
          Egal, ob der input disabled ist oder nicht.
          Firefox hingegen sträubt sich ...
          Wenn ich allerdings statt <tr onMouseover ...> folgendes definiere: <td onMouseover ...><input ...></td> dann macht es auch der Firefox (wenn auch mit kleinen Macken).

          btw: was meinst Du mit Bibliothek?

          Thomas

          1. btw: was meinst Du mit Bibliothek?

            Deine Erläuterung:

            Das wird komplizierter ;-))) (Javascript holt sich ein Element "Assistent" eines weiteren Frames, ruft dann mit Hilfe eines Timers eine Funktion auf, die den Tooltipp sichtbar schaltet, sowie einen weiteren Timer, der nach einer bestimmten Zeit den Tooltipp wieder abschaltet.)

            Was ist ein element Assistent?
            Wie werden die Timer gestuert?

            Struppi.

            --
            Javascript ist toll (Perl auch!)
            1. Was ist ein element Assistent?

              Kein HTML-Element. Wir haben (wie bei Office den Karl Klammer) ein nettes Männeken, welches dann einen Tooltipp anzeigt. Dieser ist als <div> definiert und wird per Javascript (un)sichtbar geschaltet.

              Wie werden die Timer gestuert?

              Ist der Assisitent selbst sichtbar und soll ein Tooltipp angezeigt werden, wird folgendes abgearbeitet:

              function handleToolTip(sName,sVisible,iShowTime)
              {
                // "Assistent" finden
                var windownavigationtop = getFrame("navigationtop").window;

              var assistant_area = getObjByWindow(windownavigationtop, "assistant_area");
                var assistant_menu = getObjByWindow(windownavigationtop, "assistant_menu");

              // Timer definieren
                if (assistant_area != null && assistant_menu != null) {
                  if (sVisible == "visible"
                   && assistant_area.style.visibility == "visible"
                   && assistant_menu.style.visibility == "hidden") {
                    // Löschen des vorherigen Cancel-Threads
                    clearTimeout(toolTipTimerCancler);

              // Nach 1 sec. erscheint der ToolTip
                    toolTipTimer = setTimeout("doToolTip(""+sName+"",""+sVisible+"")",1000);

              // Nach X sec. wird der ToolTip ausgeblendet
                    toolTipTimerCancler = setTimeout("handleToolTip(""+sName+"","hidden")",iShowTime);
                  }

              if (sVisible == "hidden") {
                    clearTimeout(toolTipTimer);
                    doToolTip(sName,sVisible);
                  }
                }
              }

              function doToolTip(sHinweisName,sVisible)
              {
                // Tooltipp anzeigen
                if (getFrame("navigationtop") != null) {
                  var windownavigationtop = getFrame("navigationtop").window;

              var hinweis = getObjByWindow( windownavigationtop, sHinweisName );
                  if (hinweis) {
                    if (hinweis.style) {
                      hinweis.style.visibility = sVisible;
                    }
                  }
                }
              }

              getObjByWindow sucht nach einer vorgegebenen ID und gibt das Objekt zurück

              Hoffentlich nutzts was ...
              Gruß
              Thomas