Antworten auf deine Fragen:
Neues Thema erstellen

"Klasse" in JavaScript

AW: "Klasse" in JavaScript

Priiiiiiiiiima! :)
Also ich habe dein Tipp mal versucht praktisch umzusetzen. Sag mir mal ob das mit deinen Vorstellungen hinkommt:
Code:
<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title>Unbenanntes Dokument</title>
    <script>
    
        /**
         * Hier werden alle Overlay
         * Schließ-Funktionen aufgerufen
        */
        var overlay = array();
        function closeOverlays(){
            // Für jedes Overlay das geöffnet ist
            var length = arr.length,element = null;
            for (var i = 0; i < length; i++) {
                element = arr[i];
                // Öffnen der Schließ-Funktion für das Overlay
                window[element]();
                // Unset das Array mit den Funktionen beinhaltend
                overlay = [];
            }
            return true;
        }
        
        /**
         * Overlay eins
        */
        $('a.overlayOne').click(function(e){
            e.preventDefault();
            // Schließe ersteinmal alle anderen overlays
            closeOverlays();
            // füge das overlay in das array hinzu
            // damit closeOverlays() weiß, dass dieses
            // overlay geschlossen werden muss bevor
            // ein anderes geöffnet werden kann
            overlay.push("overlayOneClose");
            
            // Hier wird der Overlay eins eingeblendet    
        });
        function overlayOneClose(){
            // Schließt overlay eins
        }
        
        /**
         * Overlay zwei
        */
        $('a.overlayTwo').click(function(e){
            // Schließe ersteinmal alle anderen overlays
            closeOverlays();
            // füge das overlay in das array hinzu
            // damit closeOverlays() weiß, dass dieses
            // overlay geschlossen werden muss bevor
            // ein anderes geöffnet werden kann
            overlay.push("overlayTwoClose");
            
            // Hier wird der Overlay zwei eingeblendet
        });
        function overlayTwoClose(){
            // Schließt overlay zwei
        }
        
        
        
    </script>
</head>
<body>
<a href="#" class="overlayOne">Öffnet overlay eins</a>
<a href="#" class="overlayTwo">Öffnet overlay zwei</a>
</body>
</html>
 

Duddle

Posting-Frequenz: 14µHz

AW: "Klasse" in JavaScript

Sowas wie overlayOneClose und overlayTwoClose sollte dir sofort ins Auge stechen.

Ich habe ja schon ein Entwurfsmuster verlinkt, also bin ich so frei und zeige gleich auf das nächste: Strategie. Dafür hatte ich auch mal geschrieben. Das ist mglw. nicht ganz ideal für dich, falls du komplett freie Schließ-Animationen vergeben willst statt einer vordefinierten Menge, aber das Prinzip ist anwendbar:

Du hast einzelne Objekte für jede Schließ-Animation, plus ein Subjekt aus dem Observer-Muster (hey, wo wir schon dabei sind, mach doch gleich ein Singleton draus).
Beim Erzeugen eines neuen Overlays gibst du ihm eines der Schließ-Animations-Objekte und meldest es am Subjekt an. Beim Öffnen meldet das Overlay dem Subjekt diesen Wunsch, welches dann allen angemeldeten Beobachter/Overlays den Schließen-Befehl gibt.

Diese Lösung ist aber reiner Overkill. Zumindest der Observer-Teil. Du brauchst - wie vorher schon gesagt - nur ein globales Arrays mit den Overlays, über welches eine Hilfsfunktion iteriert und die Schließen-Funktion aufruft.


Duddle
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Keine Mitglieder online.

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben