5

Hey Jungs hatte gehofft, du mich ...ausblenden jquery ui-Menü, wenn irgendwo anders geklickt

im so etwas wie ein Anfänger mit Jquery und Javascript helfen könnte. Es wird versucht, ein jquery-ui-Menü zu implementieren, das beim Klicken auf ein Objekt angezeigt wird, aber verschwindet, wenn an einer anderen Stelle als im Menü selbst geklickt wird.

dies ist der Code, den ich

bisher haben
$("div.item").click(function(e){ 
     $("#menu").menu(); 
     $("#menu").css("top",e.pageY); 
     $("#menu").css("left",e.pageX); 

     }); 

jetzt will ich das Menü auszublenden und zerstören, wenn ein Klick als auf den Menü itself..thanks im Voraus irgendwo anders gemacht wird.

Antwort

8

Sie möchten das Blur-Ereignis verwenden, das ausgelöst wird, wenn ein Objekt den Fokus verliert. Wenn Sie auf etwas anderes klicken, wird der Fokus entfernt.

$("#menu").blur(function() { 
    // Your code here to either hide the menu (.toggle()) 
    // or remove it completely (.remove()). 
}); 
+0

kann es nicht die Arbeit an, aus irgendeinem Grund Ereignis nur aufgerufen, wenn ich auf ein Element klicken in „#menu“ das erste Mal, und klicken Sie irgendwo anders auf dem Bildschirm. –

+4

hat es tatsächlich zur Arbeit .. Ich musste nur $ ("# menu") tun. Focus(); wenn es geklickt wurde, weil wenn das div angeklickt wurde und Menü zeigt, war der Fokus nicht auf der Speisekarte .. danke für die Erklärung, da es mir geholfen hat, es herauszufinden :) .. –

1

Gerade Tanks für obigen Code und Kommentar (@ Tod relic0, @ levi-botelho)

// create 
$('#menu').blur(function() { 
    $('#menu').hide(); 
}); 

// show 
$('#menu').show().focus(); 
0

ich das gleiche Problem mit dem JQuery UI selectmenu Widget hatte und das Problem trat auf, weil ich Die JQuery UI-Auswahlmenü-CSS-Datei wurde nicht importiert. Ich entschied mich nicht, weil ich das Auswahlmenü selbst gestalten wollte.

das Problem, das ich [aria-hidden="true"] { display: none; } meine eigene CSS hinzugefügt zu beheben, bemerkte ich, dass diese Arie Haus wurde zwischen true und false Makeln, wenn ich das Problem zu beheben versuchen, herumspielen.

0

Hallo das ist der Prozess, den wir in Oodles Technologies folgen, um jquery datepicker zu verstecken.

Die Grundstruktur unseres Modals wird so aussehen.

<button class="btn btn-info btn-lg" data-target="#myModal" data-toggle="modal" type="button">Open Modal</button> 

Und das ist unsere Basis css und das ist für definierte Höhe modal.

.modal-body { 
    min-height: 500px; 
    max-height: 500px; 
    overflow: auto; 
} 

$(".modal-body").scroll(function(){ 
    $("#ui-datepicker-div").hide(); 
}); 

hoffe, es hilft