Guten Abend,
ich bin zurzeit dabei, ein Skript zu schreiben, welches ein Menühandling übernehmen soll. Es soll bei Klick auf einen Menübutton ausfahren, gleichzeitig gehighlightet werden, bei erneutem Klick wieder einfahren usw. usf.
Dabei verwende ich auch Prototype und Scriptaculous.
Nun stellt sich folgende Problematik dar:
Ich möchte gewisse Einstellungen beim Laden der Homepage setzen.
Dazu habe ich mir eine Funktion geschrieben, die beispielsweise onClick-Handler setzen soll.
Meine Frage: Warum ist "menuArr[i]" innerhalb des Funktionsaufrufes beim Setzen eines Eventhandlers nicht mehr gültig und wie kann ich sie auch innerhalb der Funktion gültig machen?
Ich hoffe, ich konnte mich verständlich ausdrücken und es findet sich jemand, der darauf eine Lösung weiß.
Danke schon einmal im Voraus für jegliche Antwort.
ich bin zurzeit dabei, ein Skript zu schreiben, welches ein Menühandling übernehmen soll. Es soll bei Klick auf einen Menübutton ausfahren, gleichzeitig gehighlightet werden, bei erneutem Klick wieder einfahren usw. usf.
Dabei verwende ich auch Prototype und Scriptaculous.
Nun stellt sich folgende Problematik dar:
Ich möchte gewisse Einstellungen beim Laden der Homepage setzen.
Dazu habe ich mir eine Funktion geschrieben, die beispielsweise onClick-Handler setzen soll.
Meine Frage: Warum ist "menuArr[i]" innerhalb des Funktionsaufrufes beim Setzen eines Eventhandlers nicht mehr gültig und wie kann ich sie auch innerhalb der Funktion gültig machen?
Code:
// Array mit Namen der Menüelemente.
var menuArr = new Array('home', 'uebermich', 'produkte', 'impressum');
function initMenu(id) {
for(var i=0;i<menuArr.length;i++) {
if(id!=menuArr[i]) {
$('subnav_'+menuArr[i]).hide();
$('navi_'+menuArr[i]).observe('click',
function(event) {
Effect.SlideDown('subnav_'+menuArr[i],
{
duration:0.5,
queue:'end'
}
);
}
);
$('navi_'+menuArr[i]).observe('mouseover',
function(event) {
alert('nav_'+menuArr[i]);
HiLite('nav_'+menuArr[i],'Highlight',0);
}
);
}
}
}
// Funktion, die Bilder tauschen soll (Normal- und Highlightbilder).
// Diese Bilder werden vorher per "new Image()" vorgeladen und er halten
// als Variablennamen eben "Normal" und "Highlight" + eine fortlaufende Nummer,
// beginnend bei "0".
function HiLite(picID,objectID,i) {
$(picID).src=eval(objectID+i+'.src');
}
Ich hoffe, ich konnte mich verständlich ausdrücken und es findet sich jemand, der darauf eine Lösung weiß.
Danke schon einmal im Voraus für jegliche Antwort.