Ich habe einen Begrüßungstyp bootstrap-modal auf der Startseite, der drei Schaltflächen anzeigt, von denen jede verschiedene Seiten laden sollte
Hier ist es ein relevanter Ausschnitt des HTML
%Vor%Und hier mein JS
%Vor%(Hinweis: Dieses JS funktioniert offensichtlich nicht. Es ist nur mein letzter Versuch)
Die Frage ist also: Wie kann ich herausfinden, welche Taste von innerhalb der Funktion hidden.modal.bs
gedrückt wurde?
Schauen Sie sich anstelle von hidden.bs.modal
hide.bs.modal
an, die vor dem Schließen des Dialogs ausgelöst wird.
Und anstatt e zu betrachten, versuchen Sie document.activeElement
(wie document.activeElement.innerText
oder document.activeElement.id
) zu sehen.
Normalerweise ist der Fall, dass der Benutzer den modalen Dialog mit der ESC-Tastaturtaste schließt, genauso für den Fall, dass der Benutzer ihn mit einem Hintergrund (Klick auf Hintergrund) schließt, so dass ich nur feststellen musste, ob Benutzer schließen Sie den modalen Dialog mit der Schaltfläche Schließen oder nicht?
%Vor% Hinweis: Dieses Skript verwendet hide.bs.modal
und nicht hidden_modal_bs
. das ausgeblendete Ereignis Feuer nach dem modalen Dialog wurde bereits geschlossen, in diesem Fall müssen Sie sich nicht darum kümmern, wie es geschlossen wird. Normalerweise müssen Sie erkennen, wie es geschlossen wird, bevor Sie den Dialog schließen (mit return true
oder false
in) das Ereignis hide.bs.modal
).
Bei Bootstrap 3.3.4 und früheren Versionen enthält das an die Handler übergebene hide.bs.modal
-Objekt für die Ereignisse hidden.bs.modal
und event
keine Informationen über die ursprüngliche Quelle des Ereignisses.
Auf der Bootstrap-Projektseite gibt es ein Problem: # 15408: Ursache für das Ereignis hidden.bs.modal , das in ein allgemeineres Ticket ( Bootstrap-Problem # 15393 ) gerollt wurde, um das ursprüngliche Trigger-Ereignis weiterzuleiten die Warteschlange (für den 4.0-Meilenstein).
Als Nebenbemerkung habe ich die folgende Problemumgehung verwendet (mithilfe einer Variablen zum Speichern des ursprünglichen Ereignisauslösers):
%Vor%In Ihrem Fall müssen Sie die folgenden Ereignisbehandlungsroutinen hinzufügen:
%Vor% Bitte beachten Sie, dass Ihre modale beim Klicken auf die Schaltflächen ausgeblendet werden, da Ihre Schaltflächen das Attribut data-dismiss="modal"
haben. Die click
-Handler treten jedoch ein und setzen eventTrigger
, bevor modal
ausgeblendet wird, also vor dem hidden.bs.modal
-Ereignis, sodass Ihr Handler für das Ereignis ein einfaches sein kann switch
:
Tags und Links events twitter-bootstrap-3 bootstrap-modal