Klaus: Div bei Klick ausserhalb ausblenden

Beitrag lesen

Hallo,

bei einem Klick auf einen Button blende ich ein Div ein, dessen Inhalt dynamisch per Ajax erstellt wird.
Der Inhalt beinhaltet ein Eingabefeld, einen Button und diverse Links.
Wenn der Benutzer ausserhalb des Div klickt, soll das Div wieder unsichtbar werden.

Mein Ansatz ist die Verwendung von onBlur, aber onBlur funktioniert nur, wenn das Div vorher auch den Fokus erhalten hat, was mit einem Einblenden aber nicht automatisch passiert.

Mit Verwendung von tabindex="1" hab ich lediglich erreicht, dass onBlur dann ausgeführt wird, wenn ich das Div irgendwo angeklickt habe, wo kein Inhalt steht.

Die Verwendung von getElementById('meinDiv').focus(); hat leider keinen Unterschied gemacht.
Zudem wird onBlur auch aufgerufen, wenn ich das Div angeklickt habe und dann in das im Div enthaltene Eingabefeld klicke.

Eine Alternative wäre ein zweites Div über die gesamte Fenstergröße zu spannen und bei Fokus beide Divs ausblendet, aber hier muss der Anwender dann immer 2 Mal klicken, damit er in ein Eingabefeld gelangt, das ausserhalb vom Div liegt.

Eine weitere Alternative wäre, jedem Element ausserhalb des Div bei Fokus das Div ausblenden lassen, aber klingt ziemlich umständlich, unpraktikabel und fehleranfällig.

Hat jemand eine bessere Lösung?