Funktion aufrufen
Markus
- javascript
Hallo zusammen,
irgendwie stehe ich auf dem Schlauch:
Ich möchte über onmouseover eine Funktion aufrufen, welche eine Ebene durch eine andere auswechselt. Dies sieht folgendermaßen aus:
...
<a href="..." onmouseover="changeLayer(1)"></a>
<div id="info1" class="...">...</div>
...
Die Funktion ist extern gespeichert und sieht wie folgt aus:
/* Funktionen zum Wechseln der Infoebenen */
var lastlayernumber = 1;
var active;
var changeInterval = 5000;
function changeLayerStop() {
window.clearTimeout(active);
}
function changeLayerRestart(layernumber) {
active = window.setTimeout("changeLayer(" + nextlayernumber + ")", changeInterval);
}
function changeLayer(layernumber){
hideLayer(eval('"info' + lastlayernumber +'"'));
showLayer(eval('"info' + layernumber +'"'));
lastlayernumber = layernumber;
window.clearTimeout(active);
if (lastlayernumber < 100) {
changeInterval = 10000;
nextlayernumber = Math.round(Math.random() * 10) + 100;
}
else {
nextlayernumber = lastlayernumber + 1;
}
if (nextlayernumber > 100) {
nextlayernumber = 100;
}
active = window.setTimeout("changeLayer(" + nextlayernumber + ")", changeInterval);
}
function hideLayer(name) {
document.getElementById(name).style.visibility = "hidden";
}
function showLayer(name) {
document.getElementById(name).style.visibility = "visible";
}
So das interessante daran ist, dass wenn ich diese Funktion über
<img src="..." onmouseover="changeLayer(1);">
aufrufe, funktioniert alles wunderbar. Nur bei <a> und <area> nicht?
Sieht jemand zufällig den Fehler? Muss irgendwie "return true" zurückgeben?
Danke für die Hinweise!
P.s: Ich weiß, das Skript ist nicht cross-browser-fähig, aber stört auch nicht weiters, da 90% der aktuellen Browser kein Problem damit haben und den sontigen Usern keine Informationen vorenthalten werden.