Menu
Alex
- javascript
Hallo Leute!
Können Sie mir helfen.Ich habe dynamische Menü erzeugt und bei mir köappt es nicht der letze Teil und zwar ,wenn sie punkt Menu "PC" geht,öffnet die zweite Menü und bei Menu "Hardware" soll es dritte Menü wie bei ersten Fall.Wie kann ich machebn?Übrigens diese Menu funktionert ab Nescape 4.0 und MS Explorer 4.Vielen Dank,deren mir helfen können
<html>
<BODY LINK="#FFFFFF" TEXT="FFFFFF" VLINK="#999999" ALINK="#00FF00" BGCOLOR="#000000">
<BR><BR><A HREF="menu1.zip"><IMG SRC="download.gif" border=0></A>
<CENTER>
<style>
.menu
{
position: absolute;
top:0;
z-index: 2;
}
.submenu
{
position: absolute;
top: 22;
z-index: 0;
visibility: hide;
visibility: hidden;
}
</style>
<script>
<!--
var old;
var memold;
var subold;
if(document.layers)
{
window.captureEvents(Event.MOUSEDOWN);
window.onmousedown=do_out;
} else
{
document.onmousedown=do_out;
}
function show_layer(x)
{
if(document.layers)
document.layers[x].visibility="show";
else
document.all[x].style.visibility="visible";
}
function hide_layer(x)
{
if(document.layers)
document.layers[x].visibility="hide";
else
document.all[x].style.visibility="hidden";
}
function do_menu(x)
{
if(!old)
old=memold;
if(old!=x)
{
show_layer(x);
old=x;
} else
old="";
}
function do_check(x)
{
if(old && old!=x)
{
hide_layer(old);
show_layer(x);
old=x;
}
do_submenu();
}
function do_out()
{
if(old)
hide_layer(old);
memold=old; old="";
do_submenu();
}
function do_submenu(x)
{
if(subold)
{
hide_layer(subold);
subold="";
}
if(x)
{
show_layer(x);
subold=x;
}
}
// -->
</script>
<div id="m1" class="menu" style="left: 220;">
<table bgcolor="000000" cellspacing="0" cellpadding="2" border="1" width="100">
<tr>
<td><a href="javascript:do_menu('m1x')" onmouseover="do_check('m1x')"><b>Hardware</b></a> </td>
</tr>
</table>
</div><div id="m1x" class="submenu" style="left: 220;">
<table bgcolor="000000" cellspacing="0" cellpadding="2" border="1" width="100">
<tr>
<td>
<a href="#" onmouseover="do_submenu('m11x')"> PC </a><br>
<a href="#" onmouseover="do_submenu()"> Mac </a><br>
<a href="#" onmouseover="do_submenu('m13x')"> Amiga </a><br>
<a href="#" onmouseover="do_submenu()"> UNIX </a></td>
</tr>
</table>
</div>
</div>
<div id="m11x" class="submenu" style="left: 260; top:45; z-index:1;">
<table bgcolor="000000" cellspacing="0" cellpadding="2" border="1" width="100">
<tr>
<td>
<a href="#" onmouseover="do_submenu('m14x')"> Hardware</a><br>
<a href="#">Software</a><br>
<a href="#">Lager</a>
<a href="#">Freehand</a> </td>
</tr>
</table>
</div>
<div id="m13x" class="submenu" style="left: 267; top:82; z-index:1;">
<table bgcolor="000000" cellspacing="0" cellpadding="2" border="1" width="100">
<tr>
<td>
<a href="#">Ha</a><br>
<a href="#">Soft</a><br>
<a href="#">Lag</a><br>
<a href="#">Freehand</a> </td>
</tr>
</table>
</div>
<div id="m14x" class="submenu" style="left:400; top:52; z-index:2;">
<table bgcolor="000000" cellspacing="0" cellpadding="2" border="1" width="100">
<tr>
<td>
<a href="#" onmouseup="do_submenu()">AAAAA</a><br>
<a href="#">BBBBB</a><br>
<a href="#">CCCCC</a><br>
<a href="#">DDDDD</a> </td>
</tr>
</table>
</div>
</center>
</body>
</html>
Hallo Alex!
Können Sie mir helfen.Ich habe dynamische Menü erzeugt und bei mir köappt es nicht der letze Teil und zwar ,wenn sie punkt Menu "PC" geht,öffnet die zweite Menü und bei Menu "Hardware" soll es dritte Menü wie bei ersten Fall.Wie kann ich machebn?Übrigens diese Menu funktionert ab Nescape 4.0 und MS Explorer 4.Vielen Dank,deren mir helfen können
Es ist was schwer, aus Deiner Problembeschreibung schlau zu werden. Wie sieht es aus, wenn Du Dein Menü mal Online zu Besichtung stellst. Dann postest Du hier noch mal die URL und beschreibst noch mal Dein Problem?
mfg, André
Hi,
ich habe mir das mal auf die Schnelle angeschaut. Du hast einen komischen Stil. Style gehören bei mir in den head. Javascript (zumindest das was Du machen möchtest) auch.
Also, den Problem liegt im Aufruf der funktion do_submenu().
Du hast mit onmouseover die Links sensibel gemacht. Bei "PC" erscheint das erste Submenu (m11x). Das beinhaltet auch Links mit onmouseover. Wenn Du nun einen dieser Links berührt, läuft die Funktion do_submenu() wieder ab und es wird m13x gezeigt, m11x aber als altes gelöscht.
Du prüfst auf alte Submenues und löschst dabei das erste.
Da du bei den anderen kein zweites Submenu eingebaut hast, fällt das nicht auf.
Ändere die Funktion und blende alle submenues erst aus, wenn die letzte mögliche Auswahl erfolgt.
Und bitte denke einmal über eine andere Struktur deiner Seite nach, liest sich ungewohnt ;-)
Gruß
Harald