2014-01-17 54 views
9

定義的錯誤我在jQuery此代碼:(文件名是javascript.js ...我以前使用JavaScript ...)

$(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'); 
}); 
}); 

...這在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> 

當我檢查控制檯,我得到了Uncaught ReferenceError$沒有在第一行定義。我假設它指的是第一行的第一個字符。我從一個網站獲得了這個代碼,我是jQuery的新手,所以我不確定這裏發生了什麼問題。

有什麼建議嗎?

+4

你應該首先包括了jQuery –

+1

試着在你的HTML內容的末尾添加自己的代碼腳本,您的交易標籤之前避免這種像'$沒有defined'錯誤的。並在頂部標記中添加其他預定義的Jquery或其他庫。您的訂單應該是 - ''並在正文內'' –

回答

41

更改你,包括你的腳本(jQuery的第一)的順序爲:

<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> 
+0

謝謝。你的回答擺脫了這個問題。但是現在我收到一個錯誤,說我缺少'Access-Control-Allow-Origin'標頭。我知道我需要添加'Allow-Control-Access-Origin:*',但我不確定**在哪裏放置它。 – user3015565

7

包含了jQuery先向:

<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

腳本加載在你在定義的順序HTML。

因此,如果你第一次加載:

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

不先加載了jQuery,然後$ is not defined

您需要先加載jQuery,以便您可以使用它。

爲了提高性能,我還建議將腳本放在HTML的底部。

+0

...按順序加載和解釋。 OP的假設似乎是在它們全部被加載後才被解釋。 – akonsu

1

MVC 5股票安裝將JavaScript引用放在所有頁面共享的_Layout.cshtml文件中。因此,JavaScript文件低於主要內容和document.ready函數,在這裏我所有的$都是。 _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> 

我搬到他們的 @RenderBody以上()和所有被罰款。

@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> 
相關問題