Was ich tatsächlich bekomme, ist angegeben in: http://jsfiddle.net/y9uwY/7/

Was ich möchte:

  1. Wenn der Benutzer auf den schwarzen Bereich klickt, sollte nichts passieren
  2. Klicken außerhalb des schwarzen Bereichs muss geschlossen sein
-1
Arun Killu 9 Okt. 2012 im 15:16

3 Antworten

Beste Antwort

Sie müssen verhindern, dass das Ereignis in den Körper sprudelt. Hier ist der korrigierte Code http://jsfiddle.net/y9uwY/8/

Als Referenz und weiterführende Literatur: Was ist das Sprudeln und Erfassen von Ereignissen?

0
Community 23 Mai 2017 im 10:24

Versuchen Sie diese Geige, Ihr body -Tag hat immer nur die Größe des Hauptelements .select_roles. Wenn Sie also die Breiten und Höhen auf 100% einstellen, erhalten Sie einen anklickbaren Bereich für das Ausblenden (dies funktioniert in msot-Browsern , um ein wenig mehr zu ermöglichen, könnte es sich auch lohnen, etwas Polsterung hinzuzufügen). Dies setzt einfach .select_roles auf display:none;, beginnt jedoch mit der Klasse .active, um es display:block; zu machen, sobald Sie außerhalb des Bereichs klicken, in dem wir die Klasse .active entfernen .

Geige: http://jsfiddle.net/y9uwY/3/

1
JamieM23 9 Okt. 2012 im 11:37

Probieren Sie jetzt die Geige http://jsfiddle.net/y9uwY/9/

$('.select_roles').click(function (e){
    e.stopPropagation();
                 if($(this).hasClass('active')){
                 }
                 });

            $('body').click(function (){
                 if($('.select_roles').hasClass('active')){
                     $('.select_roles').removeClass('active');
                 }
            });
1
Sourabh 13 Okt. 2012 im 01:27