PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Frage bezüglich Navigations-Menü



SickSoul
07-03-2005, 22:43
Ich habe auf einer Homepage, an der ich mich gerade spiele einen Bug enddeckt (glaub ich halt) der mir ziemlich auf die Nerven geht!

Man muss nämlich um das Menue aufzuklappen mindestens 2mal auf die Buttons klicken, was ja bei onClick=... nicht der Fall sein sollte!
Was könnte der Grund dafür sein, oder was kann ich dagegen tun

Naja, der Code für das menue ist im quelltext ...
Zur Homepage (http://sf.lukashold.com)

danke für eure hilfe

cu

michael.sprick
07-03-2005, 23:54
Ist Dir aufgefallen, dass das Problem nur beim ersten Aufklappen eines Menüs auftritt? Ich vermute folgendes:

In Deiner JS Funktion fragst Du das "display"-Attribut ab und entscheidest je nach Wert, ob es auf- oder zugeklappt werden soll.
Wenn Du die Seite ganz zu Anfang geladen hast, ist das "display"-Attribut aber noch garnicht gesetzt.

Abhilfe schafft entweder eine kleine Änderung in Fallunterscheidung:



function show_it_tech()
{
if(document.getElementById("nav1").style.display !="block")
{
document.getElementById("nav1").style.display="block";
}
else
{
document.getElementById("nav1").style.display="none";
}
}

oder das initiale Setzen des display Attributs (style="display:none") für nav1.

Vermute ich mal so... habs nicht getestet

SickSoul
08-03-2005, 18:57
im Stylesheet habe ich für die Klasse "nav" das display bereits auf none gesetzt :)

hab dann die fallunterscheidung verwendet und siehe da es funktioniert...
DANKE sehr :D

Hätt da aber noch eine Frage...
im untermenue muss man immer ueber dem text positioniert sein um den link zu erwischen...
wie kann ich das so lösen das er die ganze td verwendet??

cu

Glow
04-04-2005, 17:13
Ich hab's jetzt nicht überprüft, aber das schwebte mir dafür so im Kopf rum:

Zum Minimieren:
Fast so wie bei meinem Vorgänger, außer dass ich nicht nur display: block beachte, sondern alles, was angezeigt wird (kA ob du das brauchst).



function minimize(name)
{
var layer = document.getElementById(name);

if (layer.style.display == 'none')
layer.style.display = '';
else
layer.style.display = 'none';
}



<a onclick="minimize('beispiel')" style="cursor: pointer">Hier draufklicken, um den Text zu verstecken und wieder anzuzeigen</a><br />
<a id="beispiel">versteck mich!</a>


Das mit dem style="cursor: pointer" ist nur, damit es wie ein Link erscheint, man aber kein lästiges href="#" benutzen muss, was die Seite erneuern würde, bzw. die Ansicht wieder auf den Seitenanfang setzen würde.


im untermenue muss man immer ueber dem text positioniert sein um den link zu erwischen...
wie kann ich das so lösen das er die ganze td verwendet??

Auch einfach auf's <td> ein onclick-Event setzen.
Mit window.location = 'http://www.google.de' kannst du dann einen Wechsel hervorrufen.
Mit CSS machste dann sowas wie
.nav td:hover { background-color: #336699; cursor: pointer; }
und schon sieht's auch so aus wie ein Link.

<td class="nav" onclick="window.location = 'link.htm'">Der Link</td>

Kannst dir dann noch so ne schöne Funktion schreiben wie



function change_site(site)
{
window.location = site + '.htm'
}


Verwendung wäre dann <td class="nav" onclick="change_site('link')">Link</td>


Sorry, falls Fehler vorhanden sind und hoffe, ich konnte dir helfen.