Raffi: Auswahlbox stöhrt Menu

Hallo Leute

ich habe folgendes problem. Ich habe ein Menu, das mit der rechten maustaste geöffnet wird. Nun das Problem: Es wird überall angezeigt, ausser wenn es über ein Formularfeld (Dropdown) geöffnet wird, dann wird das DHTML Menu nicht korrekt angezeigt. Das Dropdown menu ist dann im DHTML Menu sichtbar (es schlägt durch).

Was kann ich da machen?

<script language="JavaScript" type="text/javascript">
<!--
var context_delete;
var context_view;
var context_reply;
var context_replyall;
var context_forward;
var context_forward;
var context_source;
var context_print;

function contextTwice() {
 if (event.srcElement==whichDiv)
 DrawContextMenu(id,folder);
}

function DrawContextMenu(id,folder) {
 whichDiv=event.srcElement;
 context_view = "view.php?id=" + id + "&f=" + folder + "[session_force]";
 context_delete = "delete.php?selection=" + id + "&f=" + folder + "[session_force]";
 context_reply = "compose.php?id=" + id + "&f=" + folder + "[session_force]";
 context_replyall = "compose.php?id=" + id + "&f=" + folder + "&mode=all[session_force]";
 context_forward = "compose.php?id=" + id + "&f=" + folder + "&mode=fwd[session_force]";
 context_source = "source.php?id=" + id + "&f=" + folder + "[session_force]";
 document.getElementById('contextmenu').style.posLeft=event.clientX+document.body.scrollLeft;
 document.getElementById('contextmenu').style.posTop=event.clientY+document.body.scrollTop;
 document.getElementById('contextmenu').style.display="";
 document.getElementById('contextmenu').setCapture();
}

function ClickMenu() {
 document.getElementById('contextmenu').style.display="none";
 el=event.srcElement;
 if (el.id=="mnuView") {
  document.location = context_view;
 } else if (el.id=="mnuDelete") {
  document.location = context_delete;
 } else if (el.id=="mnuReply") {
  document.location = context_reply;
 } else if (el.id=="mnuReplyall") {
  document.location = context_replyall;
 } else if (el.id=="mnuForward") {
  document.location = context_forward;
 } else if (el.id=="mnuSource") {
  document.location = context_source;
 } else if (el.id=="mnuBack") {
  window.history.go(-1);
 } else if (el.id=="mnuForward") {
  window.history.go(1);
 }
 document.getElementById('contextmenu').releaseCapture();
}

function toggleMenu() {
 el=event.srcElement;
 if (el.className=="menuItem") {
  el.className="highlightItem";
 } else if (el.className=="highlightItem") {
  el.className="menuItem";
 }
}
// -->
</script>
<div onclick='ClickMenu()' onmouseover="toggleMenu()" onmouseout="toggleMenu()" id='contextmenu' style='position:absolute;display:none;width:150px;border:1pt solid #808080;background-color:menu;padding:5px;' oncontextmenu='contextTwice()'>
<table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td bgcolor="#51748A" width="15"> </td><td> </td><td>
<div class="menuItem" id="mnuView">&Ouml;ffnen</div>
<div class="menuItemSpacer"><img src="images/spacer.gif" height="1" /></div>
        <div class="menuItem" id="mnuReply">Antworten</div>
        <div class="menuItem" id="mnuReplyall">Allen antworten</div>
        <div class="menuItem" id="mnuForward">Weiterleiten</div>
<div class="menuItemSpacer"><img src="images/spacer.gif" height="1" /></div>
        <div class="menuItem" id="mnuDelete">Löschen</div>
        <div class="menuItem" id="mnuSource">Quelltext</div>
<div class="menuItemSpacer"><img src="images/spacer.gif" height="1" /></div>
        <div class="menuItem" id="mnuBack">Vorherige Seite</div>
        <div class="menuItem" id="mnuForward">Nächste Seite</div>
</td></tr></table>
</div>

Danke und Gruss
Raffi

  1. Hi Raffi,

    [...] Das Dropdown menu ist dann im DHTML Menu sichtbar (es schlägt durch). Was kann ich da machen?

    wenn die CSS-Eigenschaft "z-index" nicht hilft, nichts.

    Grüße,
     Roland

    1. Danke...und wo und wie müsste ich den z-Index einfügen?

      gruss
      raffi

      1. hi,

        Danke...und wo und wie müsste ich den z-Index einfügen?

        bei den betroffnenen elementen, deren schichtung du verändern willst. lies bei weiteren fragen im css-kapitel von self unter z-index nach.

        aber mit ziemlicher sicherheit _wird_ es nichts nützen, worauf orlando dich mit seiner formulierung ja auch schon vorbereiten wollte.

        dass select-felder die "unart" haben, sich immer in den vordergrund zu drängen, ist schliesslich schon in etlichen threads im archiv nachlesbar. das einzige, was gemeinhin hilft, ist das komplette verschwindenlassen des selects über eine änderung der display-eigenschaft. kann aber u.U. auch "scheisse" aussehen, und ob es dir den aufwand wert ist für ein eigenes rechtsklick-menü - das eine vielzahl deiner besucher nerven wird, weil sie dort ihr gewohntes rechtsklickmenü erwarten; das darüber hinaus bei einer weiteren anzahl an benutzern gar nicht erst funktionieren wird, weil sie es dir nicht erlauben - musst du entscheiden.

        gruss,
        wahsaga