Markk: ".style.display = ..." und HTML Tabellen

Hallo Community.

Ich habe ein kleines Problem ;-)

Wenn man auf ein Bild klickt (JS Handler hab ich jetzt mal weggelassen)
<img src="./data/specialmenu/new.gif" class="PieContextMenu" ... style="display: none;" />

wird folgendes Menü sichtbar gemacht (ist über das Style attribute display standardmäßig ausgeblendet)

<ul id="..." class="PieContextMenu" style="display: none;">  
    <li><a href="javascript:alert('test')"><img src="./data/specialmenu/new.gif" alt="Neuer Upload erstellen" /></a></li>  
 <li><a href="javascript:alert('test')"><img src="./data/specialmenu/edit.gif" alt="Upload bearbeiten" /></a></li>  
 <li><a href="javascript:alert('test')"><img src="./data/specialmenu/trash.gif" alt="Upload löschen" /></a></li>  
 <li><a href="javascript:alert('test')"><img src="./data/specialmenu/mail.gif" alt="Upload per Email versenden" /></a></li>  
</ul>

JavaScript Befehl zum Einblenden des Menüs:
PieContextMenu.menuElement.style.display = 'block';

Das funktioniert ja soweit alles ganz gut. Problem ist jetzt, dass ich das Bild, welches zum Öffnen des Menüs
angeklickt werden muss sich jetzt in einer Tabelle befindet.

...
<tr>
 <td>
  <img src="./data/specialmenu/new.gif" class="PieContextMenu" ...  style="display: none;" />

<ul id="menue<tree:nodeId node="tree.node"/>" class="PieContextMenu" style="display: none;">
      <li><a href="javascript:alert('test')"><img src="./data/specialmenu/new.gif" alt="Neuer Upload erstellen" /></a></li>
   <li><a href="javascript:alert('test')"><img src="./data/specialmenu/edit.gif" alt="Upload bearbeiten" /></a></li>
   <li><a href="javascript:alert('test')"><img src="./data/specialmenu/trash.gif" alt="Upload löschen" /></a></li>
   <li><a href="javascript:alert('test')"><img src="./data/specialmenu/mail.gif" alt="Upload per Email versenden" /></a></li>
  </ul>
 </td>
</tr>

Das Menü selbst ist größer als das Tabellenfeld.
Wenn ich jetzt im IE 7.0 das Menü einblenden möchte, dann wird dieses nicht ganz dargestellt (passt halt nicht in
ganz in die Tabellenzelle). Nebenbei: Im Firefox funktioniert es aber ...
Habe jetzt mal versucht mit den display Eigenschalften zu werkeln, aber leider ohne Erfolg

table-column
table-column-group
table-caption

Hier heißt es immer "unbekannte Tabelleneigenschaft".
Weiß jemand hier weiter?

  1. Hi,

    Das Menü selbst ist größer als das Tabellenfeld.
    Wenn ich jetzt im IE 7.0 das Menü einblenden möchte, dann wird dieses nicht ganz dargestellt (passt halt nicht in
    ganz in die Tabellenzelle).

    Na dann mach sie doch groesser.

    Habe jetzt mal versucht mit den display Eigenschalften zu werkeln, aber leider ohne Erfolg

    Mit denen welchen Elementes?

    table-column
    table-column-group
    table-caption

    Hier heißt es immer "unbekannte Tabelleneigenschaft".

    Tja, die kennt der dumme IE leider nicht.

    Weiß jemand hier weiter?

    Online-Beispiel?

    MfG ChrisB

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

      Das Menü selbst ist größer als das Tabellenfeld.
      Wenn ich jetzt im IE 7.0 das Menü einblenden möchte, dann wird dieses nicht ganz dargestellt (passt halt nicht in
      ganz in die Tabellenzelle).

      Na dann mach sie doch groesser.

      Ganz so einfach ist das leider nicht. Mein Beispiel ist sehr stark vereinfacht. Es handelt sich hier um eine Taglib JSP Navigation (Treeview), der ich einfach bestimmte Bearbeitungsfunktionen hinzufügen möchte.

      Habe jetzt mal versucht mit den display Eigenschalften zu werkeln, aber leider ohne Erfolg

      Mit denen welchen Elementes?

      table-column
      table-column-group
      table-caption

      Hier heißt es immer "unbekannte Tabelleneigenschaft".

      Tja, die kennt der dumme IE leider nicht.

      Bist du sicher dass der IE diese nicht kennt?
      Als Stylesheet versteht er es. Nur eben als
      PieContextMenu.menuElement.style.display = '...';
      nicht

      Weiß jemand hier weiter?

      Online-Beispiel?

      Nicht möglich. Läuft nur lokal :-(

      MfG ChrisB

      1. Hi,

        bitte spiele nicht mit den automatisch eingefuegten Zitatzeichen herum, bzw. fuege keine am Anfang deiner eigenen Antworten ein, Danke.

        table-column
        table-column-group
        table-caption

        Hier heißt es immer "unbekannte Tabelleneigenschaft".

        Tja, die kennt der dumme IE leider nicht.

        Bist du sicher dass der IE diese nicht kennt?

        Ja.
        (In der Version 8 kennt er sie zwar, aber die hat ja noch nicht mal das Beta-Stadium verlassen.)

        Als Stylesheet versteht er es.

        Er *versteht* sie in dem Sinne, dass er das tut, was ein Browser per Definition machen soll, wenn er auf ihm unbekannte CSS-Eigenschaften/-Werte trifft - er *ignoriert* sie.

        Nur eben als

        PieContextMenu.menuElement.style.display = '...';
        nicht

        Ja, wenn Style-Eigenschaften per JavaScript gesetzt werden sollen, dann weiss er ploetzlich nicht mehr, dass er ihm unbekannte Werte zu ignorieren hat, und meldet einen Fehler.

        Nur ein Schuss ins Blaue - aber hilft es vielleicht, wenn du nach dem Einblenden des Menues die Breite der Tabellenzelle noch mal explizit auf auto setzt? (Oder zur Not auch explizit auf die Breite, die das Menue aktuell beansprucht, zu erfragen ueber dessen offsetWidth-Eigenschaft.)

        MfG ChrisB

        --
        „This is the author's opinion, not necessarily that of Starbucks.“
        1. Tja, dann bleibt wohl oder übel nichts anderes über als das Taglib zu bearbeiten. Danke für deine schnelle Hilfe.