Rollout verzögern

Skala

Mitglied
Hallo

Ich hab ein kleines Pulldownmenu mit CSS und JS gemacht. JS bin ich oberschlecht, ich hoffe ihr sagt mir einfach wies geht :>

Hier zuerst mein Script:
Code:
<script type="text/javascript">
<!--
window.onload=show;
function show(id) {
var d = document.getElementById(id);
	for (var i = 1; i<=10; i++) {
		if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';}
	}
if (d) {d.style.display='block';}
}
//-->
</script>

Jetzt mach ich das so, bei mouseover geb ich einfach n wert mit und bei mouseout geb ich einfach nix mit. das klappt ja auch. leider is das deftig unschön wenns einfach so schnell weggeht.

jetzt könnt ich doch sicher ein pseudowert mitgeben, zB out (also: onmouseout="javascript:show(''out');" und dann im script ne abfrage machen, ist es out: dann zeig nix an aber warte noch 1 sekunde.

is des möglich? und wie würde der satz in js syntax lauten? ;-]

wär echt nett wenn mir jemand schnell helfen könnte, ich dreh eh schon durch ab diesem rollover dings bums pulldown menü. ^^

gruss martin
 
setTimeout()

Ihc an deiner Stelle würde das Timeout einfach als else hinter das letzte if anhängen. So sparst du dir deine Parameter. Wenn es einfach kein Element "d" gibt (ist der Fall wenn der Parameter "id" etweder fehlt oder die id existiert), dann klappt das Menu ne Sekunde verzögert ein.
 
Zuletzt bearbeitet:
if (d = 'bla') {
window.setTimeout("show('')", 10000);
}

geht nicht :(

if (d = 'bla') {
document.setTimeout("show('')", 10000);
}

auch nicht

noch ein tipp? :)
 
Schau dir mal an was du geschrieben hast (besonders die Anführungszeichen) und dann wunder dich nochmal, warum es nicht geht.

Außerdem habe ich mich bei deinem script ein bisschen verlesen, sorry. So könnte es gehen:
HTML:
 <script type="text/javascript">
<!--
window.onload=show;
function show(id) {
if (!id) window.setTimeout('invis()',1000);
else {
var d = document.getElementById(id);
if (d) d.style.display='block';
}
}
function invis() {
	for (var i = 1; i<=10; i++) if (document.getElementById('smenu'+i)) document.getElementById('smenu'+i).style.display='none';
}
//-->
</script>
 
Zuletzt bearbeitet:
vielen dank :-)

edit: geht doch nicht... nun gehts immer nach einer sekunde weg. beim ersten mal nicht, wenn die seite neu geladen ist. aber wenns das erste mal weg war dann klappts nicht mehr. ich versucht die seite mal raufzuladen.

so habs nun raufgeladen. leider sind da tausende von php fehlern welche durch denn ordnerwechsel verursacht wurden. trotzdem erkennt man das problem. das script klappt nur bei den news.

http://www.tierverkehr.ch/app_resource/alte_dateien/intranet/index2.php
 
Zuletzt bearbeitet:
Das es nur bei den News funktioniert ist kein Wunder. Du hast es auch nur bei den News eingebaut: Nur bei dem Bild mit den news ist ein onmouseover-Event und ein onmouseout-Event da. Wo wir gerade bei den Events sind: Es reicht wenn du onmouseover="show('smenu1')" schreibst das zustäliche javascript: im Event brauchst du nicht.

Und wenn du jetzt noch das onmouseout Bei den Bildern raushaust, dann klappt dir das Menü auch nur zu, wenn du mit der Maus von den Unterpunkten weggehst.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück