2015-04-14 128 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