it-swarm.com.de

Nicht erfasster ReferenceError: $ ist kein definierter Fehler in jQuery

Ich habe diesen Code in jQuery: (der Dateiname ist javascript.js ... Ich habe zuvor JavaScript verwendet ...)

$(document).ready(function() {
 $("#readFile").click(function() {
    $.get('test.txt', function(data) {
      $("#bottom_pane_options").html(data); // #bottom_pane_options is the div I want the data to go
    }, 'text');
 });
});

... und das in HTML:

<!DOCTYPE html>
<html>
<head>
    <title>Culminating</title>
    <link href="style.css" rel="stylesheet" type="text/css">

    <script type="text/javascript" src="./javascript.js"></script>
    <script
        src="http://maps.googleapis.com/maps/api/js?key=AIzaSyCJnj2nWoM86eU8Bq2G4lSNz3udIkZT4YY&sensor=false">
    </script>

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


    <script>
        function initialize()
        {
        var mapProp = {
          center:new google.maps.LatLng(50.569283,-84.378433),
          zoom:5,
          mapTypeId:google.maps.MapTypeId.TERRAIN
          };
        var map=new google.maps.Map(document.getElementById("googleMap"),mapProp);
        }

        google.maps.event.addDomListener(window, 'load', initialize);
    </script>
</head>

<body>
    <div class="content">
        <div id="googleMap"></div>
        <div id="right_pane_results">hi</div>
        <div id="bottom_pane_options">
            <button id="readFile">Read File</button>
        </div>
    </div>
</body>

Wenn ich die Konsole überprüfe, erhalte ich das Uncaught ReferenceError sagt, dass $ ist in der ersten Zeile nicht definiert. Ich gehe davon aus, dass es sich um das erste Zeichen in der ersten Zeile handelt. Ich habe diesen Code von einer Website erhalten und bin neu in jQuery, daher bin ich mir nicht sicher, was hier falsch läuft.

Irgendwelche Vorschläge?

9
user3015565

Ändern Sie die Reihenfolge, in der Sie Ihre Skripte einfügen (jQuery zuerst):

<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<script type="text/javascript" src="./javascript.js"></script>
<script
    src="http://maps.googleapis.com/maps/api/js?key=YOUR_APIKEY&sensor=false">
</script>
41
j08691

Skripte werden in der Reihenfolge geladen, in der Sie sie im HTML definiert haben.

Deshalb, wenn Sie zuerst laden:

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

ohne zuerst jQuery zu laden, dann $ is not defined.

Sie müssen zuerst jQuery laden, damit Sie es verwenden können.

Ich würde auch empfehlen, Ihre Skripte aus Performancegründen am unteren Rand Ihres HTML-Codes zu platzieren.

7
MMM

Beziehen Sie zuerst die jQuery-Datei ein:

 <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
 <script type="text/javascript" src="./javascript.js"></script>
    <script
        src="http://maps.googleapis.com/maps/api/js?key=AIzaSyCJnj2nWoM86eU8Bq2G4lSNz3udIkZT4YY&sensor=false">
    </script>
7
Saravana

Die MVC 5-Standardinstallation fügt Javascript-Verweise in die Datei _Layout.cshtml ein, die auf allen Seiten freigegeben ist. Die Javascript-Dateien befanden sich also unterhalb des Hauptinhalts und der document.ready-Funktion, wo sich alle meine $ befanden.

UNTERER TEIL VON _Layout.cshtml:

    <div class="container body-content">
        @RenderBody()
        <hr />
        <footer>
            <p>&copy; @DateTime.Now.Year - My ASP.NET Application</p>
        </footer>
    </div>

    @Scripts.Render("~/bundles/jquery")
    @Scripts.Render("~/bundles/bootstrap")
    @RenderSection("scripts", required: false)

</body>
</html>

Ich habe sie über @RenderBody () verschoben und alles war in Ordnung.

    @Scripts.Render("~/bundles/jquery")
    @Scripts.Render("~/bundles/bootstrap")
    @RenderSection("scripts", required: false)

    <div class="container body-content">
        @RenderBody()
        <hr />
        <footer>
            <p>&copy; @DateTime.Now.Year - My ASP.NET Application</p>
        </footer>
    </div>

</body>
</html>
1
JustJohn