TypeError: $ ist keine Funktion beim Aufruf der jQuery-Funktion
Ich habe ein einfaches jQuery Skript in ein WordPress plugin, das über einen jQuery-wrapper wie diese:
$(document).ready(function(){
//jQuery code is in here
});
Rufe ich das Skript aus dem WordPress-Dashboard und bin laden, NACHDEM das jQuery-framework geladen hat.
Wenn ich die Seite in Firebug ich ständig die Fehlermeldung erhält:
TypeError: $ ist nicht eine Funktion
$(document).bereit(Funktion(){
Sollte ich vielleicht wickeln Sie das Skript in dieser Funktion:
(function($){
//jQuery code is in here
})(jQuery);
Ich hatte diesen Fehler schon ein paar mal und bin mir nicht sicher wie es zu handhaben.
Jegliche Hilfe würde sehr geschätzt werden.
Kommentar zu dem Problem - Öffnen
Wenn Sie geben Sie
$
in der Konsole und drücken Sie die EINGABETASTE, - was sehen Sie? Beim ausführen von $ in der Konsole erhalte ich "undefined"
InformationsquelleAutor der Frage Jason | 2012-09-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Standardmäßig, wenn Sie enqueue jQuery in WordPress müssen Sie
jQuery
, und$
wird nicht verwendet (dies ist für die Kompatibilität mit anderen Bibliotheken).Ihre Lösung Verpacken Sie in
function
funktionieren, oder Sie können das laden von jQuery eine andere Möglichkeit (aber das ist wahrscheinlich nicht eine gute Idee in WordPress).Wenn Sie verwenden müssen
document.ready
können Sie tatsächlich passieren$
in der Funktionsaufruf:InformationsquelleAutor der Antwort Explosion Pills
Dieses Problem beheben sollte:
Setzen Sie einfach, WordPress läuft Ihre eigene scripting, bevor Sie und lassen Sie die
$
var so dass es nicht kollidieren mit anderen Bibliotheken. Das macht total Sinn, wie WordPress verwendet wird, für alle Arten von web-sites, apps, und natürlich blogs.Aus Ihrer Dokumentation:
InformationsquelleAutor der Antwort Matthew Blancarte
Können Sie vermeiden, widersprüchlichen wie diese
InformationsquelleAutor der Antwort Ashwani Panwar
Diese Lösung funktionierte für mich
Bewegen Sie Ihren code auf der Innenseite des Deckels und benutzen
$
stattjQuery
Fand ich die oben genannte Lösung in https://magento.stackexchange.com/questions/33348/uncaught-typeerror-undefined-is-not-a-function-when-using-a-jquery-plugin-in-ma
...nach der Suche zu viel
InformationsquelleAutor der Antwort Bikram Shrestha
Versuchen Sie dies:
InformationsquelleAutor der Antwort Jose Carlos Ramos Carmenates
Kredit Ashwani Panwar und Cyssoo Antwort: https://stackoverflow.com/a/29341144/3010027
InformationsquelleAutor der Antwort optimiertes
Übergibt man $ Funktion()
InformationsquelleAutor der Antwort Jitendra Damor
Überprüfen Sie Ihre jQuery-Referenzen. Es ist möglich, dass Sie entweder darauf verweisen, mehr als einmal, oder Sie rufen Ihre Funktion zu früh (vor jQuery definiert ist). Sie können versuchen, wie bereits in meinen Kommentaren und ggf. jQuery Verweis auf den Anfang der Datei (im Kopf) und sehen, ob das hilft.
Wenn Sie die Kapselung von jQuery sollte es nicht helfen in diesem Fall. Bitte versuche es, weil ich denke, es ist hübscher und mehr offensichtlich, aber wenn jQuery nicht definiert ist, erhalten Sie die gleichen Fehler.
... JQuery ist derzeit nicht definiert.
InformationsquelleAutor der Antwort Raghul Manoharan
Was für mich gearbeitet. Die erste Bibliothek importieren, wird die query-Bibliothek und , dann rechts Aufruf der jQuery.noConflict () - Methode.
InformationsquelleAutor der Antwort PbxMan
nun verwenden jq statt jQuery
InformationsquelleAutor der Antwort Aman birjpuriya
Kommen Sie über dieses Problem, wenn Sie Ihre Funktion-Namen und die id-Namen in der Datei sind die gleichen. nur stellen Sie sicher, dass alle id-Namen in der Datei sind einzigartig.
InformationsquelleAutor der Antwort Laxman Jaygonde
Verwenden
statt
oder
Innerhalb der Funktion, $ Punkte zu jQuery-wie man es erwarten würde
InformationsquelleAutor der Antwort Sanjay
InformationsquelleAutor der Antwort Sharif Mohammad Eunus
Außerdem finde ich es eine gute Lösung für die Verwendung der jQuery noConflict-Modus.
Fand ich diese Lösung von hier aus.
https://thecodingstuff.com/how-to-properly-use-jquery-noconflict-mode-in-wordpress/
InformationsquelleAutor der Antwort Renish Khunt
ersetzen
$
Schild mitjQuery
wie diese:
InformationsquelleAutor der Antwort MaXee Khan