hilfe!! CSS wird durch JS gestört?!?
alex
- javascript
0 MudGuard
hey ho!
habe folgendes problem:
ich hab ein hauptmenü mit javascript und css gecodet. der code sieht so aus:
....................................."main.php".....................................
<html>
<head>
<link href="style.css" rel="stylesheet" type="text/css">
<script type="text/javascript">
<!--
window.onload=show1;
function show1(id)
{
var c = document.getElementById(id);
for (var j = 1; j<=10; j++)
{
if (document.getElementById('hmenu'+j))
{
document.getElementById('hmenu'+j).style.display='none';
}
}
if (c) {c.style.display='block';}
}
//-->
</script>
</head>
<body>
...
.....................jetzt das hauptmenü.....................
<div id="menu2">
<dl>
<li><dt onmouseover="javascript:show1('hmenu1');"><a href="home.php">Home</a></dt></li>
<li><dt onmouseover="javascript:show1('hmenu2');"><a href="home.php?mode=fotogallerie">Fotogallerie</a></dt></li>
<li><dt onmouseover="javascript:show1('hmenu3');"><a href="home.php?mode=musiker">Musiker</a></dt></li>
<li><dt onmouseover="javascript:show1('hmenu5');"><a href="home.php?mode=programm">Programm</a></dt></li>
<li><dt onmouseover="javascript:show1('hmenu6');"><a href="home.php?mode=kontakt">Kontakt</a></dt></li>
<li><dt onmouseover="javascript:show1('hmenu7');"><a href="home.php?mode=impressum">Impressum</a></dt></li>
<li><dt onmouseover="javascript:show1('hmenu7');"><a href="home.php?mode=termine">Termine</a></dt></li>
</dl>
</div>
...
soweit funktioniert es noch. wenn ich jedoch auf einen link klicke, wird die formatierung nicht richtig angezeigt...außer ich loesche das
ganze menü aus der "main.php".
hier tritt der fehler auf:
....................................."seite.php".....................................
<html>
<head>
<link href="style.css" rel="stylesheet" type="text/css">
<script type="text/javascript">
<!--
window.onload=show1;
function show1(id)
{
var c = document.getElementById(id);
for (var j = 1; j<=10; j++)
{
if (document.getElementById('hmenu'+j))
{
document.getElementById('hmenu'+j).style.display='none';
}
}
if (c) {c.style.display='block';}
}
//-->
</script>
</head>
<body>
...................jetzt das andere dropdown-menü...................
<div id="menu">
<dl>
<dt onmouseover="javascript:show('smenu1');">Sortieren nach:</dt>
<dd id="smenu1" onmouseover="javascript:show('smenu1');" onmouseout="javascript:show('');">
<ul>
<li><a href="home.php?mode=programm&sortby=ad">A - D</a></li>
<li><a href="home.php?mode=programm&sortby=eh">E - H</a></li>
<li><a href="home.php?mode=programm&sortby=il">I - L</a></li>
<li><a href="home.php?mode=programm&sortby=mp">M - P</a></li>
<li><a href="home.php?mode=programm&sortby=qt">Q - T</a></li>
<li><a href="home.php?mode=programm&sortby=uz">U - Z</a></li>
<li><a href="home.php?mode=programm&sortby=az">A - Z</a></li>
</ul>
</dd>
</dl>
</div>
....
in CSS kann kein fehler sein, da das erste dropdown-menü (seite.php) richtig funktioniert hat. ich hab die javascript-funktionen sogar geändert damit sich die nicht behindern können. doch der fehler bleibt.
was sehr merkwürdig ist:
-> das dropdownmenü (seite.php) lässt sich bei mouseover droppen.
-> es kann nicht auf die submenüs geklickt werden.
-> die css formatierung funktioniert auch nicht mehr richtig. d.h. an manchen stellen klappt die css formatierung noch<-- das ist am merkwürdigsten^^
so... wo steckt jetzt der fehler? hat wer ne ahnung? bin für alles offen (=
auf wunsch poste ich auch gerne den css code... was euch wahrscheinlich nichts bringt (:
ps: es muss doch irgendwer diesen fehler mal gehabt haben ;)
Hi,
<dl>
<li><dt onmouseover="javascript:show1('hmenu1');"><a href="home.php">Home</a></dt></li>
dl darf keine li enthalten, nur dd und/oder dt.
Die Labels javascript: in den onmouseover-Attributen sind überflüssig.
hier tritt der fehler auf:
if (document.getElementById('hmenu'+j))
Der von Dir gezeigte Code enthält keine Elemente mit IDs, die mit "hmenu" beginnen.
<li><a href="home.php?mode=programm&sortby=ad">A - D</a></li>
Das & muß als & oder als numerische Zeichenreferenz geschrieben werden.
in CSS kann kein fehler sein, da das erste dropdown-menü (seite.php) richtig funktioniert hat.
Hast Du das CSS validiert?
-> das dropdownmenü (seite.php) lässt sich bei mouseover droppen.
-> es kann nicht auf die submenüs geklickt werden.
-> die css formatierung funktioniert auch nicht mehr richtig. d.h. an manchen stellen klappt die css formatierung noch<-- das ist am merkwürdigsten^^
Und wir sollen jetzt raten, was das Problem sein könnte?
Du zeigst fehlerhaftes HTML, Du zeigst Javascript, das nicht so recht zum HTML paßt, Du zeigst kein CSS.
Und da sollen wir rausfinden, warum Dein CSS nicht so recht greift?
Kann mal jemand die Kristallkugeln polieren?
Oder vielleicht mal einen Link zu der Konstruktion liefern, daß man sich das anschauen kann?
cu,
Andreas