So ermitteln Sie, ob eine Funktion ohne globale Variable aufgerufen wurde
Ich bin auf der Suche nach eine gute Technik, um Weg von dem, was ich bin versucht zu tun: so legen Sie eine Globale variable.
Das erste mal, das jemand führt eine Funktion durch klicken auf eine Schaltfläche löst eine erste Funktion schalten Sie ein paar Dinge in draggables. Später, wenn Sie klicken Sie auf die Schaltfläche ein zweites mal möchte ich, um zu bestimmen, wenn die init
- Funktion initialisiert wurde, und falls nicht, rufen Sie es wieder. Ich konnte ganz einfach tun dies, indem Sie eine Globale variable aus der init
Funktion und dann prüfen, dass die Variablen aus dem click-Funktion, aber ich Frage mich, wie dies zu tun, ohne das setzen von globalen Variablen. Ich würde wirklich gerne ein Beispiel für eine Möglichkeit, dies zu tun.
InformationsquelleAutor der Frage codelove | 2012-07-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnte man hinzufügen, eine Eigenschaft der Funktion:
InformationsquelleAutor der Antwort Levi Hackwith
Während @Levi ' s Antwort sollte gut funktionieren, möchte ich eine weitere option. Sie würde über schreiben der init-Funktion nichts zu tun, wenn es einmal genannt.
Wird die Funktion aufgerufen, wenn das erste mal, wird die init. Es wird dann sofort überschreiben sich return false die nächste Zeit, die genannt werden. Das zweite mal wird die Funktion aufgerufen, die den Rumpf der Funktion enthält nur den Wert false zurück.
Mehr Lesen: http://www.ericfeminella.com/blog/2011/11/19/function-overwriting-in-javascript/
InformationsquelleAutor der Antwort Amith George
Warum gehst du nicht einfach zu überprüfen, ob Ihr draggables haben eine Klasse
draggable
auf Sie?InformationsquelleAutor der Antwort Jason
InformationsquelleAutor der Antwort Cau
Was Sie tun können, lösen Sie die init-Funktion aus dem Prototyp.
Die ersten
if
wahr sein wird, und druckenexists!
aber da die Funktion entfernt sich die zweiteif
fehl. In meinem Beispiel nenne ich die zweite init bedingungslos, nur um zu zeigen, dass nichts passieren wird, aber natürlich könnte man es nennen, nur, wenn es existiert:http://jsfiddle.net/coreyog/Wd3Q2/
InformationsquelleAutor der Antwort Corey Ogburn