Ich entwickle etwas JavaScript, das entweder mit Prototype.js oder JQuery funktionieren sollte, also brauche ich einen Weg, um zu identifizieren, was die primäre Bibliothek ist. Wie kann ich das machen?
Antwort
können Sie prüfen, für jQuery wie folgt aus:
if (window.$ === window.jQuery)
Nun, könnte man auf die Anwesenheit von jQuery überprüfen:
if(window.jQuery !== "undefined")
{
// jQuery Yay!
}
und dann, wenn es zu $
zugewiesen
if(window.jQuery === window.$)
{
// jQuery Yay!
}
Vermutlich meinen Sie im ersten Beispiel 'typeof'. – bobince
Könnte jQuery noconflict helfen? Dann könnten Sie jQuery
für jQuery und $
für Prototyp verwenden.
@SLaks und @Chacha102 sind das Richtige für jQuery Erkennung, aber wenn Sie wollen sicherstellen, dass, wenn die $
Funktion nicht von jQuery ist, von PrototypeJS kommt, können Sie:
if (typeof $ == 'function') {
if ($.fn && $.fn.jquery) { // $.fn.jquery contains the version number
// jquery
} else if (window.Prototype && Prototype.Version) {
// prototype
}
}
schreiben es ohne die Abhängigkeit von irgend Bibliothek und es sollte mit jQuery und Prototype gut funktionieren;)
Ernsthaft, ist nicht einer der Hauptpunkte dieser Bibliothek, um zu vermeiden, drei verschiedene Variationen jeder Codezeile für jeden Browser schreiben zu müssen? Code zu schreiben, um zu versuchen, mehr als einer Bibliothek zu entsprechen, scheint ziemlich albern zu sein.
Wie auch immer, wenn Sie die Dokumentation für eine der beiden Bibliotheken für etwa 5 Sekunden betrachten, sollten Sie einen Hinweis darauf geben, welche Eigenschaften jq $ dieses pt $ nicht haben wird. Das deutet darauf hin, dass Sie sich nicht wirklich die Mühe gemacht haben, die Unterschiede zwischen den Frameworks zu betrachten (was offensichtlich der beste Weg ist, sie auseinander zu halten, oder?). Sind Sie sicher, dass Sie wissen, worauf Sie sich einlassen?
Wie einige erwähnt haben:
var whosThatDollarSign = typeof window.$=='undefined' ? 'none' : (window.$==window.jQuery ? 'jQuery' : 'not jQuery')
Ich würde das wählen, wenn es nicht alles bekommen würde Predigt am Ende. –
Mach dir keine Sorgen, ich verliere keinen Schlaf drüber. –
ich einige JavaScript bin zu entwickeln, die entweder mit Prototype.js oder JQuery funktionieren sollte, so muss ich einen Weg zu erkennen, was die primäre Bibliothek ist im Einsatz. Wie kann ich das machen?
Ihre Frage ist zweideutig, es gibt zwei offensichtliche Bedeutungen für mich, also werde ich beide beantworten.
Wenn Sie wollen, dass Sie Code schreiben, der unabhängig davon funktioniert, ob jQuery oder Prototype.js verwendet wurde, ist die Antwort, dass es sehr einfach ist, Code zu schreiben, der unabhängig von den Bibliotheken funktioniert , geladen. Es muss also nicht ermittelt werden, welches verwendet wurde.
Wenn Sie meinen, dass Sie zwei separate Skripte schreiben werden, eines für jQuery und eines für Prototype.js, dann laden Sie je nachdem, welches Sie "erkennen", ein Skript oder das andere Basieren Sie Ihren Code auf eine sehr schlechte Architektur. Keine dieser Bibliotheken unterstützt eine besonders große Auswahl an Browsern und beide müssen aktualisiert werden, sobald eine neue Version herauskommt, sogar von den "populären", die sie unterstützen.
Der Versuch, beide mit separaten Skripten zu unterstützen, wird zu ständigen Wartungskopfschmerzen führen - mal zwei. Oder vielleicht ist das deine Absicht.
-
Rob
- 1. Wie erkennt man, welche Option ausgewählt wurde?
- 2. Wie erkennt man welche Blog-API?
- 3. Klicken Sie auf einen Link, der hinter einem div steht?
- 4. Welcher Sortieralgorithmus steht hinter einem NSSortDescriptor?
- 5. Wie erkennt man die JavaScript-Methode (Funktion)
- 6. UIScrollView erkennt keine Berührungen hinter dem Falz
- 7. Wie kann ich wissen, ob mein Computer hinter NAT steht?
- 8. Wie erkennt man, welche Sequenz sich in WatchView befindet?
- 9. Wie erkennt man, welche Zeichensatzkodierung in Java ist?
- 10. Wie erkennt man, wer sich in der Python-Schach-Bibliothek weiß oder schwarz bewegt?
- 11. Wie erkennt man, ob eine Bibliothek DEBUG oder RELEASE erstellt?
- 12. Wie erkennt man, welche Variable in Tensorflow 'nonetype' ist
- 13. Wie man es6 Module erkennt
- 14. Welche praktische Idee könnte hinter einer solchen Funktion stehen?
- 15. Wie erkennt man Anwendungsabstürze?
- 16. Wie erkennt man, ob eine Bildlaufleiste am Ende einer Richtextbox (vb.net) steht oder nicht
- 17. Wie erkennt man den Zustand der Stromversorgung?
- 18. Wie erkennt Visual, welche Form ich will?
- 19. Code hinter der Datei erkennt keine Steuerelemente in * .ascx
- 20. Wie erkennt man den STAMINA-Modus?
- 21. Welche Fehler erkennt man nicht durch Testtechniken, sondern durch Raten?
- 22. Wie erkennt man, ob eine F # -Funktion rein ist?
- 23. Wie kann ich einen Absatz einrücken, der hinter einer Liste in LyX steht?
- 24. Wie erkennt man, wenn browserify ausgeführt wird?
- 25. Wie erkennt man "Use MFC" im Präprozessor
- 26. Wie man die Anzahl der Bilder erkennt, wurde mit Intent.ACTION_OPEN_DOCUMENT
- 27. Python Twitter-Bibliothek: welche?
- 28. fputs (_ ("")) Wofür steht der Unterstrich?
- 29. Wie man Nachbarzellen richtig erkennt
- 30. Wie erkennt man bestimmte Delphi-Builds?
Was passiert, wenn sie beide geladen? –