Hilfe zu einen Script

Diskutiere Hilfe zu einen Script im JavaScript Forum im Bereich Programmierung; Hi, Ich habe eine frage zu ein Script. Es geht um das hier: w3schools.com/howto/howto_css_modals.asp Und zwar möchte ich mehrere von den Buttons...
  • Hilfe zu einen Script Beitrag #1
F
fleckia
Member
Beiträge
5
Punkte Reaktionen
0
Hi,
Ich habe eine frage zu ein Script.
Es geht um das hier: w3schools.com/howto/howto_css_modals.asp

Und zwar möchte ich mehrere von den Buttons auf meine Hauptseite haben.
Mit verschiedenen text der angezeigt werden soll.
Was muss ich verändern/hinzufügen?

Danke
 
  • Hilfe zu einen Script Beitrag #2
S
Sempervivum
Well-known member
Beiträge
760
Punkte Reaktionen
125
Guten Abend @fleckia
Inzwischen gibt es eine bessere Möglichkeit, Modale zu erzeugen: Das dialog-Element:
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dialog
Aber auch dort muss man die Beispiele für mehrere Modale erweitern: Gib jedem dialog-Element eine ID und dem Button ein data-Attribut mit dieser ID
Code:
<dialog id="modal1">
  <button class="close-dialog" autofocus>Close</button>
  <p>This modal dialog has a groovy backdrop!</p>
</dialog>
<button class="open-dialog" data-id-dialog="modal1">Modal 1 öffnen</button>
Die ID kannst Du dann aus dem data-Attribut auslesen und das Modal öffnen.
Auch das Schließen über den close-Button muss universell gestaltet werden: Über die Funktion "closest" kannst du, vom Button ausgehend, das dialog-Element ermitteln.
Das Javascript müsste dann so aussehen:
Code:
        // Eventlistener für Klick registrieren:
        document.addEventListener('click', event => {
            // event.target ist das Element das geklickt wurde.
            // Wurde ein Button für das Öffnen eines Dialoges geklickt?
            if (event.target.classList.contains('open-dialog')) {
                const
                    // ID des dialog-Elementes aus dem data-Attribut lesen:
                    dialogID = event.target.dataset.idDialog,
                    // dialog-Element bereit stellen:
                    dialog = document.getElementById(dialogID);
                // ... und als Modal öffnen:
                dialog.showModal();
            }
            // Wurde ein Button für das Schließen eines Dialoges gedrückt?
            if (event.target.classList.contains('close-dialog')) {
                const
                    // dialog-Element bereit stellen:
                    dialog = event.target.closest('dialog');
                // ... und schließen
                dialog.close();
            }
        });
 
Zuletzt bearbeitet:
Thema:

Hilfe zu einen Script

Oben Unten