• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Menü bei "Klick außerhalb" schließen

ps2freak

Mitglied
Hallo,
ich habe ein kleines Menü gemacht, was sich beim Klick auf einen Button öffnet. Ebenfalls beim Klick darauf, führe ich folgendes aus (jQuery):
Code:
$("#menu").focus();
Ich lege also den Fokus darauf, da ich dann mit:
Code:
$("#menu").blur(function () {
[...]
});
sage, dass das Menü sich schließen soll, wenn es den Fokus verliert - also außerhalb des Menüs geklickt wird.

Das funktioniert auch wunderbar im Chrome, FF, Safari, Opera... nur natürlich nicht im IE! Wobei ich dazu sagen muss, dass ich gerade die Win8.1 Preview verwende und somit die Preview von IE 11 habe. Darum jetzt meine Frage: kommt der IE generell mit dem Fokus und blur nicht klar(hab den Verdacht, dass er das erste mit dem .focus nicht macht...), oder liegt das an der Vorabversion? Kann ich das vielleicht eleganter lösen, damit es auch überall funktioniert?


Danke und MfG.
 
Werbung:
Focus und Blur verwendet man ja auch im Zusammenhang mit input-Elementen. Du willst doch eine Aktion für den Fall auslösen, dass der User irgendwo im Dokument klickt und der angeklickte element.node nicht die ID menu besitzt. Das musst du dann auch entsprechend formulieren.

PHP:
$(document).on('click', function(event) {
    var target = $(event.target);
    if (target.attr('id') !== 'menu') {
        console.log('tu was')
    }
});
 
Möglich wäre auch folgendes:
Code:
$(document).on('click', function () {
    $('#menu').hide();
});

$('#menu').on('click', function (event) {
    event.stopPropagation();
});

damit verhinderst du, dass ein Klick auf #menu weitergereicht wird und den Klick-Event auf document triggert, der #menu verstecken würde
 
Werbung:
Zurück
Oben