bootstrap Wie erkennt man, welche Schaltfläche einen modalen Dialog auf 'hidden_modal_bs' Event Func geschlossen hat?

7

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?

    
mtsdev 19.04.2014, 12:16
quelle

4 Antworten

14

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.

    
wilsonsmith 30.09.2015, 18:48
quelle
5

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 ).

    
Roy Shoa 13.01.2016 13:23
quelle
3

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 :

%Vor%     
Samveen 22.03.2016 08:34
quelle
-1

Das übergebene e ist das Ereignisobjekt. Sie können mit e.target das HtmlElement aufrufen, das zum Auslösen dieses Ereignisses gedrückt wurde.

    
Brunis 19.08.2014 14:28
quelle