Hallo,
Das gibt aber Probleme, und ich vermute dass es daran liegt, dass "this" doch nicht so arbeitet, wie ich es mir vorstelle.
This verweist in diesem Code einfach auf das jeweilige Elementobjekt, also das li-Element.
Alles weitere hat dann mit this nichts mehr zu tun.
Im JS-Code werden die ULs einfach entsprechend auf visible oder hidden gesetzt. Für die Verzögerung brauche ich ein setTimeOut() - und dort möchte ich entsprechend gerne das "aktuelle" Element per this weitergeben
Du kannst setTimeout eine Funktion übergeben, durch die Verschachtelung hat sie Zugriff auf die Parameter der äußeren Funktion:
function activateMenu (element) {
window.setTimeout(function () {
// Mach was mit Element
}, 1000);
}
Hast du im Griff, dass der Event aufsteigt (Bubbling) und somit die Funktion activateMenu zweimal ausgelöst wird, wenn man das innere li mit der Maus überfährt? Und dass mouseover- und mouseout-Events von den Elementen im Untermenü aufsteigen und ebenfalls ständig activateMenu und deactivate aufrufen?
Wenn nicht, schau dir mal diese Beispiele an:
http://molily.de/temp/menu.html
http://molily.de/temp/mouseenter-mouseleave.html
Dort wird jeweils geprüft, welches Element das Ereignis ausgelöst hat und ob es für das Ein- und Ausklappen wirklich relevant ist.
Mathias