javascript - w3schools - JQuery-$ ist nicht definiert




tt tag in html (20)

Ich habe ein einfaches jquery click -Ereignis

<script type="text/javascript">
    $(function() {
        $('#post').click(function() {
            alert("test"); 
        });
    });
</script>

und eine jquery-Referenz, die in site.master definiert ist

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

Ich habe überprüft, dass das Skript korrekt aufgelöst wird, ich bin in der Lage, das Markup zu sehen und das Skript direkt in Firebug zu sehen, also muss ich gefunden werden. Aber ich bekomme immer noch:

$ ist nicht definiert

und nicht der jquery arbeitet. Ich habe auch die verschiedenen Varianten wie $ (document) .ready und jQuery usw. ausprobiert.

Es ist eine MVC 2 App auf .net 3.5, ich bin mir sicher, dass ich sehr dicht bin, überall auf Google sagt, dass die Datei korrekt ist, die ich überprüft und erneut überprüft habe, bitte beraten! : /


Das hat für mich funktioniert (MVC5 Projekt):

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

Dies bedeutet, dass Ihre jQuery-Bibliothek noch nicht geladen wurde.

Sie können Ihren Code nach dem Ziehen der jQuery-Bibliothek verschieben.

oder du kannst so etwas benutzen

window.onload = function(){
  // Your code here
};  

Dieser Fehler kann nur durch eines von drei Dingen verursacht werden:

  1. Ihre JavaScript-Datei wird nicht ordnungsgemäß in Ihre Seite geladen
  2. Sie haben eine verpfuschte Version von jQuery. Dies kann passieren, weil jemand die Core-Datei bearbeitet hat oder ein Plugin die Variable $ überschrieben hat.
  3. Sie haben JavaScript ausgeführt, bevor die Seite vollständig geladen ist, und bevor jQuery vollständig geladen ist.

Sie sollten das Firebug net Panel überprüfen, um zu sehen, ob die Datei tatsächlich korrekt geladen wird. Wenn nicht, wird es rot hervorgehoben und daneben "404" angezeigt. Wenn die Datei ordnungsgemäß geladen wird, ist das Problem Nummer 2.

Stellen Sie sicher, dass der gesamte jQuery-JavaScript-Code in einem Codeblock ausgeführt wird:

$(document).ready(function () {
  //your code here
});

Dadurch wird sichergestellt, dass der Code geladen wird, nachdem jQuery initialisiert wurde.

Eine letzte Sache, die Sie überprüfen sollten, ist sicherzustellen, dass Sie keine Plugins laden, bevor Sie jQuery laden. Plugins erweitern das "$" -Objekt. Wenn Sie also vor dem Laden von jQuery Core ein Plugin laden, erhalten Sie den beschriebenen Fehler.

Hinweis: Wenn Sie Code laden, der keine Ausführung von jQuery erfordert, muss er nicht in den jQuery ready-Handler eingefügt werden. Dieser Code kann mit document.readyState getrennt werden.


Es kann sein, dass Sie Ihr Skript-Tag aufgerufen haben, bevor das jquery-Skript aufgerufen wird.

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

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

Dies führt dazu, dass $ nicht definiert ist

Setzen Sie die jquery.js vor Ihr Skript-Tag und es wird funktionieren;) so:

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

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

Es stellte sich heraus, dass mein Problem ziemlich dumm war - ich hatte <script href=""> anstelle von <script src="">


Fügen Sie einfach am Anfang Ihrer Seite hinzu

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

und überprüfen Sie Ihre Src-Link in einem Browser-Adressleiste, wenn Sie etwas Code bekommen, dann wird dies für Sie arbeiten. als ob


Ich habe das gleiche Problem und kein Fall löst mir das Problem. Das einzige, was für mich funktioniert, ist die Site.master-Datei, die nächste:

<script src="<%= ResolveUrl("~/Scripts/jquery-1.7.1.min.js") %>" type="text/javascript"></script>
<script src="<%= ResolveUrl("~/Scripts/bootstrap/js/bootstrap.min.js") %>" type="text/javascript"></script>

Mit src = "<% = ResolveUrl (" ") ... ist die Belastung von jQuery in den Inhaltsseiten korrekt.


Ich habe die gleiche Fehlermeldung erhalten, wenn ich die jQuery-Referenz falsch geschrieben habe und statt type="text/javascript" ich "... javascirpt" eingegeben. ;)


Ich hatte das gleiche Problem und es war, weil meine Referenz auf die jQuery.js nicht im Tag war. Sobald ich das eingeschaltet hatte, fing alles an zu arbeiten.

Anthony


Ich hatte das gleiche Problem und konnte nicht herausfinden, was es verursacht hat. Ich habe vor kurzem meine HTML-Dateien von Japanisch in UTF-8 konvertiert, aber ich habe nichts mit den Skriptdateien gemacht. Irgendwie wurde jquery-1.10.2.min.js in diesem Prozess verdorben (ich habe immer noch keine Ahnung wie). Ersetzen von jquery-1.10.2.min.js durch das Original behoben.


In der Lösung wird erwähnt - "Eine letzte Sache zu überprüfen ist sicherzustellen, dass Sie keine Plugins laden, bevor Sie jQuery laden. Plugins erweitern das" $ "Objekt, also wenn Sie ein Plugin laden vor dem Laden jQuery Core, dann Sie bekomme den Fehler, den du beschrieben hast. "

Um dies zu vermeiden -

Viele JavaScript-Bibliotheken verwenden $ als Funktions- oder Variablennamen, genau wie jQuery. In jQuerys Fall ist $ nur ein Alias ​​für jQuery, sodass alle Funktionen ohne Verwendung von $ verfügbar sind. Wenn wir neben jQuery eine andere JavaScript-Bibliothek verwenden müssen, können wir die Steuerung von $ back mit einem Aufruf von $ .noConflict () an die andere Bibliothek zurückgeben:


In meinem Fall habe ich auf Google gehostet, JQuery. Es wurde korrekt eingefügt, aber ich war auf einer HTTPS-Seite und rief sie über HTTP auf. Sobald ich das Problem behoben habe (oder unsicheren Inhalt erlaubt habe), hat es sofort gefeuert.


Nachdem ich hier alles ohne Ergebnis versucht habe, löste ich das Problem einfach, indem ich das Script src tag von Body zu Head bewegte


Platziere einfach jquery url oben auf deinem jquery-Code

so was--

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

<script type="text/javascript">
    $(function() {
        $('#post').click(function() {
            alert("test"); 
        });
    });
</script>

Stellen Sie sicher, dass Sie wirklich jquery laden, das ist nicht jquery - es ist das ui!

  <script language="JavaScript" 
    src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.0/jquery-ui.min.js">
  </script>

Dies ist eine korrekte Skriptquelle für jquery:

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


Wenn Sie Ihre jquery.js-Dateien im selben Ordner oder in einigen Unterordnern finden, in denen sich Ihre HTML-Datei befindet, scheint das Firebug-Problem gelöst zu sein. zB wenn sich Ihr html unter C: / folder1 / befindet, dann sollten sich Ihre js-Dateien auch irgendwo unter C: / folder1 / (oder C: / folder1 / folder2 etc.) befinden und entsprechend im html doc adressiert sein. hoffe das hilft.


Wenn Sie jQuery in asp.net verwenden, wenn Sie eine Masterseite verwenden und die jquery-Quelldatei dort laden, stellen Sie sicher, dass Sie nach allen jquery-Skriptverweisen den header contentplaceholder beibehalten.

Ich hatte ein Problem, bei dem Seiten, die diese Masterseite verwendeten, "$ ist nicht definiert" zurückgaben, weil die falsche Reihenfolge den clientseitigen Code ausführen ließ, bevor das jquery-Objekt erstellt wurde. Also stellen Sie sicher, dass Sie:

<head runat="server">
    <script type="text/javascript" src="Scripts/jquery-VERSION#.js"></script>
    <asp:ContentPlaceHolder id="Header" runat="server"></asp:ContentPlaceHolder>
</head>

Auf diese Weise wird der Code in der richtigen Reihenfolge ausgeführt und Sie können jQuery-Code auf den untergeordneten Seiten ausführen.


Wie oben erwähnt, geschieht dies aufgrund des Konflikts von $ variable.

Ich habe dieses Problem gelöst, indem ich eine sekundäre Variable für jQuery ohne Konflikt reserviert habe.

var $j = jQuery.noConflict();

und dann benutze es überall

$j( "div" ).hide();

Weitere Details finden Sie here


Wir haben das gleiche Problem .... aber versehentlich habe ich die Ordnereigenschaften überprüft und etwas gesetzt ...

Sie müssen die Eigenschaften aller Ordner überprüfen, auf die Sie zugreifen.

  1. Rechtsklick-Ordner
  2. Registerkarte "Berechtigungen"
  3. Setzen Sie den Ordner Zugriff: OWNER: Erstellen und Löschen von Dateien GROUP: Zugriff auf Dateien OTHERS: Zugriff auf Dateien

Ich hoffe, dass dies die Lösung ist ......





asp.net-mvc