Derzeit arbeite ich an einer älteren Webseite, die eine Menge JavaScript, jQuery, Microsoft Client JavaScript und andere Bibliotheken verwendet. Fazit: Ich kann nicht die gesamte Seite von Grund auf neu schreiben, da das Unternehmen dies nicht rechtfertigen kann. Also ... es ist was es ist. Wie auch immer, ich muss den globalen Namespace mit einer Variablen verschmutzen (ich habe es wirklich nicht versucht). Es gibt die drei Optionen, über die ich nachgedacht habe -
Speichern / Abrufen mit einer normalen JavaScript-Deklaration -
var x = 0;
Verwenden Sie jQuery, um den Wert in einem DOM-Tag zu speichern / abzurufen.
$("body").data("x", 0);
Verwenden Sie ein ausgeblendetes Formularfeld und legen Sie den Wert mit jQuery fest.
$("whatever").data("x", 0);
Gibt es einen besseren Weg? Ich habe mir den vorhandenen Codestapel angesehen und glaube nicht, dass die Variable in einer Funktion erfasst werden kann.
quelle
Für mich ist der beste Weg, um mit dieser Situation umzugehen, ein Objekt im Fensterobjekt zu definieren:
window.my_config = { my_var1 : 1, my_var1 : 2, my_var1 : 3 };
Dies würde Ihr Zielfernrohr sauber und ordentlich halten. Und wann immer Sie mit
window.my_config
jedem, der sich den Code ansieht, auf das Globale zugreifen, wissen Sie, dass auf ein Globales zugegriffen wird.quelle
Sie können einen Hash im globalen Bereich erstellen und als Namespace verwenden:
MyNamepace={} MyNamespace.newvar = 'value' // MyNamespace.newvar => 'value'
quelle
Wenn ich nur meine Praxis mit Ihnen teile, würde ich ein globales Objekt / eine globale Variable in der erforderlichen JavaScript-Datei mit einem sinnvollen Präfix erstellen, als würde ich an einer Seite arbeiten, auf der dieses Objekt ein Textfeld sein wird, dann würde ich es benennen:
g_TxtMyValue = 'value'; // g_ specifies it to be a global variable, it is one // of the many conventions used
Wenn Sie mehr als eine globale Variable haben, können Sie auch einen Namespace haben, wie z.
my_txt = {}; // For a real site I would use a prefix relative to the project // name instead of "my". my_txt.testValueOne = 'Value one'; my_txt.testValueOne = 'Value two';
Diese Variablen stehen Ihnen nach ihrer Initialisierung auf der gesamten Website zur Verfügung.
Ich hoffe das hilft.
quelle
Verwenden Sie einen Unterstrich
isEmpty()
._.isEmpty('')
wird zurückkehrentrue
.quelle
Nur eine kurze Nachricht:
Führt die Fancybox AJAX aus (dh wenn sie in einem iFrame geladen wird, sollten Sie der Methode close "parent" hinzufügen), wie folgt:
quelle