it-swarm.com.de

'JQuery' ist nicht definiert

Ich arbeite an einem ASP.net-Projekt, das mit lokalen Dateisystemeinstellungen erstellt wurde. Ich verwende MVC und Jquery. Jquery funktioniert einwandfrei, wenn ich die Anwendung im Debug-Modus, d. H. In ASP.net Development Server, ausführen. Ich versuche, die Anwendung in IIS zu hosten. 7. Im gehosteten Modus wird Jquery nicht erkannt und es wird ein Skriptfehler "Jquery ist undefiniert" ausgegeben. Die Speicherorte der Skriptdateien bleiben in beiden Modi unverändert. Kann jemand eine Ahnung haben, was der Grund sein kann und wie man das lösen kann.

Mein Code sieht so aus;

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script src="../../Scripts/MicrosoftAjax.debug.js" type="text/javascript"></script>

<script src="../../Scripts/MicrosoftMvcAjax.debug.js" type="text/javascript"></script>

<script src="../../Scripts/jquery-1.2.6.js" type="text/javascript"></script>

<!-- YUI Styles -->
<link href="../../Content/reset.css" rel="stylesheet" type="text/css" />
<link href="../../Content/fonts.css" rel="stylesheet" type="text/css" />
<link href="../../Content/grids.css" rel="stylesheet" type="text/css" />
<!-- /YUI Styles -->
<link href="../../Content/knowledgebase.css" rel="stylesheet" type="text/css" />

<script type="text/javascript">
    //this hides the javascript warning if javascript is enabled
    (function($) {
        $(document).ready(function() {
            $('#jswarning').hide();
        });
    })(jQuery);
</script>

<asp:ContentPlaceHolder ID="ScriptContent" runat="server" />

....

21
Raja

Verwenden Sie die Firebug-Registerkarte "Net", um zu sehen, ob die Datei geladen wird.

Sie können Firebug auch so konfigurieren, dass bei allen Fehlern ein Fehler auftritt und der Fehler beim Vergleich von jQuery angezeigt wird.

20
Andrey Shchekin

0 Ich weiß nicht, ob Sie die Lösung für Ihr Problem gefunden haben oder nicht. Ich war mit dem gleichen Problem konfrontiert und verrückt geworden, um herauszufinden, warum ich die Fehlermeldung "jQuery is undefined" in den verwendeten Plugins bekomme. Ich habe alle Lösungen aus dem Internet ausprobiert, aber überhaupt kein Glück.

Aber plötzlich fällt mir etwas auf, dass die Skriptdateien in Ordnung sein sollten. Also zog ich die Jquery-Referenz an die erste Position und alles begann wie charmant zu arbeiten.

Denken Sie daran, Jungs, wenn Sie Plugins mit Jquery verwenden, stellen Sie sicher, dass Sie die folgende Reihenfolge beim Einstellen des Verweises auf diese Felder verwenden.

  1. verweis auf die Jquery-Bibliothek
  2. verweis auf die anderen nachfolgenden Plug-In-Bibliotheken (usw.) und so weiter ...

z.B.: 

  1. "script src =" js/jquery-1.3.2.min.js "type =" text/javascript "... 
  2. "script src =" js/jqDnR.min.js "type =" text/javascript "... 
  3. "script src =" js/jquery.jqpopup.min.js "type =" text/javascript "... 
  4. "script src =" js/jquery.bgiframe.min.js "type =" text/javascript "...

Stellen Sie immer sicher, dass Sie zuerst die Jquery-Referenz und dann die nachfolgenden Bibliotheken einfügen müssen.

Ich hoffe, das löst Ihr Problem, insbesondere wenn Sie mit MasterPages arbeiten. Es ist sehr seltsam, dass es unabhängig von der Reihenfolge funktioniert, die Sie verwenden, wenn Sie keine MasterPages verwenden, aber wenn Sie dies tun, müssen Sie die richtige Reihenfolge festlegen.

Viel Glück und viel Spaß beim Kodieren,

Vincent D'Souza

41
Vincent D'Souza

Sie können auch versuchen, Google Host jQuery für Sie zuzulassen:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>

Auf diese Weise müssen Sie sich keine Gedanken über den relativen Pfad zum Skript machen, die Last auf Ihrem Server vermeiden und wird für Benutzer schneller (die sie wahrscheinlich bereits irgendwo im Cache des Browsers haben).

4
Kip

Nach der Verwendung von FIrebug stellte ich fest, dass die Dateien nicht gefunden wurden, da der relative Pfad für die Dateien nicht funktioniert. Um das Problem zu beheben, sollten wir die Url.Content-Methode verwenden, um den Pfad erneut zu verschieben. Zum Beispiel:

<script src="<%= Url.Content("~/Scripts/jquery-1.2.6.js")%>" type="text/javascript"></script>
4
Raja

Ich habe die Nachricht erhalten, weil ich die Version von JavaScript auf der Seite nicht mit der Version im Projekt nicht übereinstimmte.

Auf der Seite: <script src = "@ Url.Content (" ~/Scripts / jquery-1.4.4 . Min.js ")" type = "text/javascript"> </ script>

Aktuelle Version im Projekt: jquery-1.4.1 . Min.js

Wird mithilfe von Firebug diagnostiziert und eingestellt, und es werden alle Fehler angezeigt, wie in der akzeptierten Antwort beschrieben.

4
Stephen Hosking

Jquery?!
.__ Sie meinen jQuery?

Bei Javascript wird zwischen Groß- und Kleinschreibung unterschieden. Jquery ist nicht das Gleiche wie jQuery.

3

Um auf die Antwort "text/javascript" einzugehen, funktioniert "application/javascript" in Firefox und lädt jQuery. Die Datei wird jedoch nicht im IE geladen. Verwenden Sie "Text/Javascript": 

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" ></script>
3
Dan Heberden

Ein weiterer Grund für diesen Fehler, den ich herausgefunden habe, tritt auf, wenn Sie jQuery von einem CDN und einem lokalen Skript von Ihrem Server laden. Sie werden unabhängig geladen. Wenn das lokale Skript vor der jQuery beendet wird, wird es auch vorher ausgeführt, was uns den schönen Fehler gibt. Dies ist insbesondere ein Problem, wenn sich jQuery nicht im Browsercache befindet. Dieser Fehler kann beim ersten Laden der Skripts auftreten und später verschwinden.

2
Georg Begerow

Raja hat recht, URL.Content funktioniert.

<script src="<%= Url.Content("~/Scripts/jquery-1.2.6.js")%>" type="text/javascript"></script>

Um zu verhindern, dass Sie in dem Moment, in dem Sie Ihre Anwendung auf einen IIS -Server migrieren, überrascht werden, verwenden Sie keinen Web-Entwicklungsserver, sondern IIS, wenn Sie mit der Entwicklung beginnen.

Sie können IIS direkt aus Visual Studio verwenden, indem Sie die Web-Eigenschaften bearbeiten:

  • Gehen Sie auf die Registerkarte "Web".
  • Aktivieren Sie "Lokalen IIS Webserver verwenden".
  • Klicken Sie auf "Virtuelles Verzeichnis erstellen".
  • Wechseln Sie zum Manager IIS, um ggf. den anonymen Zugriff im erstellten virtuellen Verzeichnis zu deaktivieren.
2

Häufige Fehler sind, dass andere Jquery-Skripts zuerst (Jquery.validation.js) vor Jquery.js eingefügt werden

1
Roy Astro

Für mich tritt dieser Fehler normalerweise auf, wenn in meinem Code ein echter Javascript-Fehler vorhanden ist. Dadurch wird verhindert, dass die Datei jQuery.js vollständig analysiert wird. Schauen Sie in der Fehlerkonsole in Firebug, Safari oder einem anderen Debugging-fähigen Browser nach.

1
Aaron Longwell

Wenn alles andere fehlschlägt, stellen Sie sicher, dass für die Datei die richtigen Berechtigungen festgelegt sind. Das ist mir gerade passiert! 

Sie können entweder mit der rechten Maustaste auf die Datei in Ihrem Verzeichnis klicken und dort die Berechtigung festlegen, oder Erstellen Sie einfach eine andere .js-Datei in Visual Studio, kopieren Sie den Inhalt und fügen Sie ihn ein. Lief wie am Schnürchen. :)

0
Ozzie Perez

Der Weg ist falsch. Überprüfen Sie es noch einmal.

0
Elzo Valugi

Richtig! Ich habe dies seit Tagen verfolgt, wenn Sie ein neues MVC-Projekt von Grund auf in VS verwenden, hat es auf der Seite Layout.cshtml eigene Verweise auf JQuery. Wenn Sie versuchen, auf JQuery innerhalb einer Seite zu verweisen, wird diese durch den Verweis auf der Seite Layout.cshtml überschrieben. Kommentieren Sie den Code auf der Masterseite (Layout.cshtml), und Ihre Seitenverweise werden verwendet.

0

Dies tritt normalerweise auf, wenn Sie HTML oder JavaScript falsch formatiert haben.

0
EndangeredMassa

Wenn in Ihrem Javascript keine Fehler enthalten sind (z. B. fehlende Klammern), ist entweder die jQuery-Datei nicht enthalten, oder Sie versuchen, Code auszuführen, der jQuery verwendet, bevor die Datei geladen wurde.

0
nickf

Ich habe dieses Problem gelöst, indem ich den jQuery-Verweis in meiner _Layout.cshtml aufgehoben habe. Nach dem Neustart der Site hat alles erst angefangen zu funktionieren. 

0
gyurisc

Um mein Problem/meine Lösung zu dieser langen Liste hinzuzufügen ...

Ich habe Windows 2003 verwendet, um die Site in IE7 zu testen. Die Seite war gut, aber jQuery lief überhaupt nicht. Also ging ich direkt zum http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js und stellte fest, dass ajax.googleapis.com nicht auf der Liste stand von sicheren Standorten. Nach dem Hinzufügen von * .googleapis.com hat alles gut funktioniert. Dummes Versehen, aber vielleicht hilft das jemand anderen in einer ähnlichen Situation.

0
DavGarcia

versuchen

<script src="<%= ResolveUrl("~/Scripts/jquery-1.2.6.js")%>" type="text/javascript"></script>
0
BOBO