it-swarm.com.de

Nicht gefundener ReferenceError: $ ist nicht definiert?

Wie kommt dieser Code?

Nicht abgerufener ReferenceError: $ ist nicht definiert

wann war es vorher ok? 

$(document).ready(function() {
    $('#tabs > ul').tabs({ fx: { opacity: 'toggle' } });
    $('#featuredvid > ul').tabs();
});

Ergebnisse in Registerkarten werden nicht mehr geschlossen.

auf jQuery wird in der Kopfzeile verwiesen:

<script language="JavaScript" type="text/javascript" src="<?php echo get_option('siteurl') ?>/js/sprinkle.js"></script>
<script language="JavaScript" type="text/javascript" src="<?php echo get_option('siteurl') ?>/js/jquery-1.2.6.min.js"></script>
<script language="JavaScript" type="text/javascript" src="<?php echo get_option('siteurl') ?>/js/jquery-ui-personalized-1.5.2.packed.js"></script>
542
Olivers

Sie sollten zuerst die Verweise auf die Jquery-Skripts setzen. 

<script language="JavaScript" type="text/javascript" src="/js/jquery-1.2.6.min.js"></script>
<script language="JavaScript" type="text/javascript" src="/js/jquery-ui-personalized-1.5.2.packed.js"></script>
<script language="JavaScript" type="text/javascript" src="/js/sprinkle.js"></script>
605
Jeremy

Sie rufen die ready-Funktion auf, bevor das jQuery-JavaScript enthalten ist. Referenz jQuery zuerst.

187
Open Source

Das hat es für mich gelöst. Ursprünglich ging ich zu Google, kopierte und fügte ihren vorgeschlagenen Ausschnitt für jQuery auf ihre CDN-Seite ein: 

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

Das Snippet enthält nicht den HTTP: oder HTTPS: im src-Attribut, aber mein Browser, FireFox, brauchte es, sodass ich es geändert habe:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

Dann es hat funktioniert.

96
Marlin Mixon

Wenn Ihr benutzerdefiniertes Skript geladen wird, bevor das jQuery-Plugin in den Browser geladen wird, kann dieses Problem auftreten. Behalten Sie also immer Ihren eigenen JavaScript- oder jQuery-Code, nachdem Sie das jQuery-Plugin aufgerufen haben. Die Lösung hierfür lautet:

Fügen Sie den Link zunächst der in GoogleApis gehosteten jQuery-Datei oder einer lokalen jQuery-Datei hinzu, die Sie von http://jquery.com/download/ und Host auf Ihrem Server herunterladen werden:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

oder ein beliebiges Plugin für jQuery. Fügen Sie dann den Link oder den Code für Ihre benutzerdefinierte Skriptdatei ein:

<script src="js/custom.js" type="text/javascript"></script>
42
Jnanaranjan

In meinem Fall habe ich meine .js-Datei vor den jQuery-Skriptlink eingefügt, indem die .js-Datei hinter jQuery-Skriptlink platziert wurde, wodurch mein Problem behoben wurde.

<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
<script src="http://code.jquery.com/ui/1.11.2/jquery-ui.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
<script src="exponential.js"></script>
37
user2719890

Okay, mein Problem war anders - es war Document Security model in Chrome.

Bei den Antworten hier war es offensichtlich, dass ich meine Jquery-Dateien vor dem Aufruf der Funktionen $(document).ready() etc. irgendwie nicht geladen hatte. Sie befanden sich jedoch alle in der richtigen Position.

In meinem Fall lag dies daran, dass ich über eine sichere HTTPS-Verbindung auf den Inhalt zugegriffen habe, während die Seite versuchte, die von CDN gehosteten Daten von Google usw. herunterzuladen CDN jedes Mal.

Edit: Die andere Möglichkeit, dies zu tun, besteht darin, alle von CDN gehosteten Dateien als https: // und nicht als http: // zu verknüpfen. Das Modell beschwert sich nicht.

25

Fügen Sie die Bibliothek hinzu, bevor Sie das Skript starten. Sie können Folgendes hinzufügen: CDN, um es zu starten.

Google:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

Microsoft

<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.2.1.min.js"></script>

Jquery

Wenn Sie eine andere Jquery-CDN-Version wünschen, überprüfen Sie diese Verknüpfung .

Danach:

<script type="text/javascript">
$(function(){
    //your stuff
});
or
$(document).ready(function(){
    //your stuff
});    
</script>

Wordpress:

<script type="text/javascript">
var $ = jQuery;
jQuery(document).ready(function($){
     //your stuff
});
</script>
23
lalithkumar

Wenn es sich um WordPress handelt, muss es möglicherweise geändert werden 

$(document).ready(function() {

zu

jQuery(document).ready(function($){

oder hinzufügen

var $ = jQuery;

vor

$(document).ready(function() {
19
xoxn-- 1'w3k4n

In meinem Fall hatte ich diesen referenceError, da die Reihenfolge der Skriptaufrufe falsch war. Gelöst durch die Änderung der Reihenfolge:

<script src="js/index.js"></script>
<script src="js/jquery-1.10.2.js"></script>

zu

<script src="js/jquery-1.10.2.js"></script>
<script src="js/index.js"></script>
13
Yannis Dran

Ich hatte das exakt gleiche Problem und keine dieser obigen Lösungen hat geholfen. Aber ich habe nur die .css-Dateien nach den .js-Dateien verlinkt und das Problem ist wie durch ein Wunder verschwunden. Hoffe das hilft.

13
crowicked

Ich bin wahrscheinlich die einzige Person, die meine Art von Problem hatte, aber es wurde trotzdem krank niedergeschlagen. Ich wollte mein Skript asynchronous nur zum Spaß machen. Dann vergaß ich es und als ich online ging, wurde die [custom] .js-Datei nur zu 50% vor der jQuery.js geladen.

Also habe ich mich verändert 

<script async src="js/script.js"></script>

zu 

<script src="js/script.js"></script>

:)

12
Sindri Þór

Wenn Sie dies in .NET tun und die Skriptdatei ordnungsgemäß referenziert ist und Sie jQuery gut aussehen, stellen Sie sicher, dass Ihre Benutzer Zugriff auf die Skriptdatei haben. Bei dem Projekt, an dem ich arbeitete (einem Kollegen), wurde deren web.config für anonyme Benutzer verweigert. Die Seite, an der ich arbeitete, war für anonyme Benutzer zugänglich, daher hatten sie keinen Zugriff auf die Skriptdatei. Folgendes in die web.config fallen gelassen und alles war richtig in der Welt:

  <location path="Scripts">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>
6
peroija

Das ist mir vorher passiert. 

Der Grund war, dass ich Android mit einem JS mit einem Webview verbinde. Und ich habe einen Parameter ohne Anführungszeichen gesendet.

js.sayHello(hello);

und als ich es geändert habe 

js.sayHello('hello');

es funktionierte.

5
Reinherd

Die Quelldatei jquery-1.2.6.min.js heißt nicht. Der jQuery-Befehl $() wird vor <..src='jquery-1.2.6.min.js'> ausgeführt.

Führen Sie zuerst <.. src="/js/jquery-1.2.6.min.js.."> aus und stellen Sie sicher, dass der Pfad der src richtig ist. Führen Sie dann den Befehl jquery aus

$(document).ready(function() 
5
charles hsu

In meinem Fall war es ein Tippfehler, ich habe einen Backslash vergessen und die Quelle falsch referenziert.

Vor src="/scripts/jquery.js"

Nach src="scripts/jquery.js"

4
Dennis

Ihre JavaScript-Datei fehlt, daher ist dieser Fehler aufgetreten. Fügen Sie einfach die JavaScript-Datei im <head>-Tag hinzu. Siehe das Beispiel:

<script src="js/sample.js" type="text/javascript"></script>
<link href="css/sample.css" rel="stylesheet" type="text/css" />

oder fügen Sie den folgenden Code im Tag hinzu:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
4
Gaurav Gupta

Der Fehler tritt auch in den folgenden zwei Szenarien auf.

  1. Das @section-Skriptelement fehlt in der HTML-Datei 
  2. Fehler beim Zugriff auf DOM-Elemente. Der Zugriff auf das DOM-Element wird beispielsweise als $ ("js-toggle") anstelle von $ (". Js-toggle") erwähnt. Eigentlich fehlt die Periode

Es sind also 3 Dinge zu beachten: Überprüfen Sie, ob die erforderlichen Skripts hinzugefügt wurden, und prüfen Sie, ob sie in der erforderlichen Reihenfolge hinzugefügt werden, und dritte Syntaxfehler in Ihrem Java-Skript.

Doh! Ich hatte gemischte Anführungszeichen in meinen Tags, wodurch die Jquery-Referenz beschädigt wurde. Bei einer Inspektion in Chrome konnte ich feststellen, dass die Datei nicht richtig verlinkt war.

3
justreed

In meinem Fall habe ich vergessen, folgendes hinzuzufügen:

 <script src ="jquery-2.1.1.js"></script>

Früher habe ich nur jquery-mobile aufgenommen, was diesen Fehler verursacht hat.

3
Anand

Ok, ich gebe zu, das war eine wirklich dumme Sache, die mir einmal passiert ist. Ich habe das Skript-Tag so geändert, dass es auf den richtigen Inhalt verweist, und die Skriptreihenfolge geändert, um im Editor die richtige zu sein ... aber ich habe total vergessen, die Änderung zu speichern; Probleme könnten passieren 

3
Hexodus
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script type="text/javascript" src="local_xxx.js"></script>

Ich habe ein ähnliches Problem, und Sie wissen, was ist, weil Netzwerk getrennt ist wenn ich in Android-Gerät Webview testen und ich es nicht merke, und die lokalen js kein Problem zu laden, weil es kein Netzwerk benötigt . Es scheint lächerlich zu sein, aber es verschwendet meine ca. 1 Stunde, um es herauszufinden.

2
林果皞

Ich hatte ein ähnliches Problem und es lag daran, dass mir das Schließen eines Stylesheets fehlte.

2
jason

Ich hatte das gleiche Problem und löste es, indem ich jQuery an die Spitze aller Javascript-Codes setzte, die ich in meinem Code habe.

Etwas wie das:

<script src="https://code.jquery.com/jquery-3.3.1.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
<script src="js/app.js" type="text/javascript"></script>
<script src="js/form.js" type="text/javascript"></script>
<script src="js/create.js" type="text/javascript"></script>
<script src="js/tween.js" type="text/javascript"></script>

Hoffnung kann in Zukunft jemandem helfen.

1
user9964622

Seltsamerweise kam mein Problem von PHP.

Ein REST -API-Aufruf schlug fehl und brach das Laden der Bibliotheken danach. Da der Fehler beim Aufruf von REST auftrat, gab es keinen PHP-Kompilierungsfehler.

Behalten Sie dies auch als Option, wenn das Laden von Jquery in Ordnung erscheint.

1
Aris

Sie rufen die ready-Funktion auf, bevor das jQuery-JavaScript enthalten ist. Referenz jQuery zuerst.

Wenn Sie sich in ASP.NET MVC befinden, können Sie angeben, wann Ihr JS-Code gerendert werden soll. 

1, Umbinden Sie in Ihrem page.cshtml-Tag Ihren <script>-Tag in einen Abschnitt und geben Sie ihm einen Namen.

@section scripts {
    <script>
        // JS code...
    </script>
}

2, Vergewissern Sie sich, dass Sie in Ihrer _Layout.cshtml-Seite @RenderSection("Scripts", required: false) das Feld setzen, nachdem Sie auf die Jquery-Quelle verweisen. 

1
Mayer Spitzer

Ich hatte dieses Problem, als ich über meinen mobilen Hotspot im Internet surfte. Es komprimierte auch Bilder und fügte das folgende Skript am unteren Rand des Body-Tags hinzu 

<script language="javascript"><!--
bmi_SafeAddOnload(bmi_load,"bmi_orig_img");//-->
</script>

Wenn ich mich mit dem richtigen WLAN verbunden habe, scheint alles für mich zu funktionieren. Hoffe das hilft jemandem.

1
bubb

Dies kann auch passieren, wenn ein Netzwerkproblem vorliegt. Dies bedeutet, dass die "Jquery-Skripts" zwar vorhanden sind und vor der Verwendung enthalten sind, da die Jquery-Skripts zum Zeitpunkt des Ladens der Seite nicht verfügbar sind. Daher werden die Definitionen für "$" als behandelt "undefinierte Referenzen".

FOR TEST/DEBUG PURPOSES :: Sie können versuchen, auf die URL "jquery-script" im Browser zuzugreifen. Wenn auf diese Seite zugegriffen werden kann, sollte Ihre Seite ordnungsgemäß geladen werden, andernfalls wird der besagte Fehler (oder andere für das Skript relevante Fehler) angezeigt. Beispiel - http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js sollte über den Browser (oder die Kontextpositionen des Browsers) zugänglich sein.

Ich hatte ein ähnliches Problem, bei dem ich die HTML-Seite (mithilfe von Skripts) in meinem Windows-Host-Browser laden konnte, aber nicht in vm-ubuntu laden konnte. Die Lösung des Netzwerkproblems hat das Problem behoben.

1
parasrish

Ich hatte ein ähnliches Problem. Mein Testserver funktionierte gut mit "http". Es schlug jedoch in der Produktion fehl, die SSL hatte.

Also habe ich in der Produktion "HTPPS" anstelle von "HTTP" hinzugefügt, und im Test habe ich "HTTP" beibehalten.

Prüfung:

wp_register_script ('jquery', ' http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js ', array (), null, false);

wp_register_script ('custom-script', plugins_url ('/js/custom.js', FILE), array ('jquery'));

Produktion:

wp_register_script ('jquery', ' https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js ', array (), null, false);

wp_register_script ('custom-script', plugins_url ('/js/custom.js', FILE), array ('jquery'));

Ich hoffe, das hilft jemandem, der an WordPress arbeitet.

1
user3671115
var $ = jQuery;
jQuery(document).ready(function($){
1
Jayanit Satani

Wurzelproblem ist eine ReferenceError. MDN gibt an , dass ein try/catch-Block das richtige Werkzeug für den Job ist. In meinem Fall erhielt ich einen Referenzfehler für eine Zahlungs-SDK/-Bibliothek. Das Folgende funktioniert für mich.

try {
  var stripe = Stripe('pk_test_---------');
} catch (e) {
    stripe = null;
}

if(stripe){
  //we are good to go now
}

Offensichtlich besteht das Update darin, das SDK/die Bibliothek zu laden, z. jQuery, vor dem Aufrufen der Methoden, aber mit try/catch wird Ihr freigegebenes JavaScript von Fehlern ausgeschlossen, falls Sie dieses gemeinsam genutzte Skript auf einer Seite ausführen, die die auf einer Teilmenge von Seiten verwendete Bibliothek nicht lädt.

0
Ron Royston

Sie haben nicht auf eine jQuery-Bibliothek verwiesen. 

Sie müssen eine ähnliche Zeile in Ihren HTML-Code einfügen:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
0
asghar

In meinem Fall wurde das Problem nach der Installation des Windows Server-Rollendiensts "Statischer Inhalt" behoben. (Betriebssystem: Windows Server 2008 R2)

So installieren Sie den Serverrollendienst "Statischer Inhalt":

  • (Vorausgesetzt, die Rolle "Webserver" ist bereits installiert.)> Führen Sie den Server-Manager aus.> Klicken Sie im linken Bereich auf "Rollen".> Klicken Sie im rechten Bereich auf "Rollendienste hinzufügen".> Wählen Sie "Statischer Inhalt" unter " Webserver/Allgemeine HTTP-Funktionen '> Klicken Sie auf' Weiter '> ...
0
김성훈