2015-04-14 181 views
1

我發誓我已經在頁眉包含jquery,它就在那裏!

儘管如此,下面的代碼,我已經包括在頁面底部附近(現在內聯)給我一個錯誤,說「TypeError:$不是一個函數。」

<script> 
     function displayResult(longA, latA, longB, latB, units) { 
      $("#distance").html(calcDist(longA, latA, longB, latB, units)); 
      if (units=="m") { 
       $("#unitLabel").html("miles"); 
       $("units").prop("selectedIndex",0); 
      } else { 
       $("#unitLabel").html("kilometers"); 
       $("#units").prop("selectedIndex",1); 
      } 
      $("#longA").val(longA); 
      $("#latA").val(latA); 
      $("#longB").val(longB); 
      $("#latB").val(latB); 
     } 

     $("#calculateButton").click(function() { //This is the line it's complaining about 
      var longA=$("#longA").val(); 
      var latA=$("#latA").val(); 
      var longB=$("#longB").val(); 
      var latB=$("#latB").val(); 
      var units=$("#units").val(); 
      displayResult(longA, latA, longB, latB, units); 
     })(jQuery); 
    </script> 

越往上頁標題我有以下幾點:

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

我不使用Wordpress或任何東西,這是一個很簡單的手工編碼的HTML頁面。

+2

你肯定* *說 「的jquery.js」 是你的jQuery的正確路徑文件?我會嘗試打開開發人員工具並檢查導航選項卡以查看jQuery文件是否實際上正在被擊中。 –

+6

另外'(jQuery)'部分很奇怪。 '.click'不返回函數,它返回一個jQuery對象。你不能調用一個jQuery對象。 –

+0

確保路徑正確。如果它位於與鏈接到的頁面不同的文件夾中,則此路徑不正確。 –

回答

4

嘗試在一個封閉(反正這被認爲是很好的做法)包裝代碼:

(function($) { 
    $("#calculateButton").click(function() { 
     // do stuff... 
    }); 
}(jQuery)); 

如果這個片段仍然具有相同的錯誤抱怨,也必然是與你加載的方式有問題jQuery庫。

此外,請確保您不會覆蓋其他代碼中的$變量。例如,在calcDistSinglePage.js之內。

美元符號是一個非常直接的JavaScript變量,可以重新分配給任何你想要的。根據錯誤,$目前是東西不是函數(否則您會收到一個ReferenceError,說明$未定義)。所以可能在你的代碼中的某處,你已經覆蓋了它。

+0

這有效。謝謝! –

+0

不客氣:) – Harold

0

您可能將它從不是HTML文件夾的根文件夾鏈接。使用絕對路徑:

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

或確保jquery.js是在相同文件夾作爲HTML。

1

確保jQuery庫它是您加載的第一個腳本。

在結束</body>標記之前添加此標記。

<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> 
      <script>window.jQuery || document.write('<script src="js/vendor/jquery-{{JQUERY_VERSION}}.min.js"><\/script>')</script> 
  • 本地下載的文件,其內部JS /供應商/添加的文件。
  • 在上面的腳本中替換值{{JQUERY_VERSION}},添加您的jQuery版本。


這裏可以使用一個CDN。

https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js

https://code.jquery.com/jquery-2.1.3.min.js