我得到了什么" $不是一个功能"控制台日志中的错误消息?

时间:2017-01-31 06:01:40

标签: javascript jquery

我正在尝试使用jQuery进行平滑滚动效果,但在控制台中它显示以下错误消息:

  

main.js:253 Uncaught TypeError:$不是函数       在main.js:253

我正在使用的JQuery代码:

(function($) {

   $('#what, .down').click(function() {
      e.preventDefault();
      var target= $(this).get(0).id == 'what' ? $('.down') : $('#what');
          $('html, body').stop().animate({
          scrollTop: target.offset().top
      }, 1000);
  });   

})(jQuery);

我的代码有什么问题吗?

4 个答案:

答案 0 :(得分:2)

错误

  

$不是main.js的函数

假设您使用开发人员工具中的控制台/网络标签检查了jquery库是否正在加载而没有问题

解决方案1 ​​ 可能是因为在加载jquery之前首先加载了外部javascript。要使用requirejs解决此问题,请点击此链接以了解用法http://requirejs.org/docs/api.html

解决方案2 更新您使用的Jquery版本,可能是您使用的旧版本

Soluton 3

在JS文件中使用它。

jQuery(document).ready(function($){

// jQuery code is in here

});

声明后,您将能够访问$

答案 1 :(得分:1)

错误

  

$不是main.js的函数

表示您的jQuery没有正确包含在您的文档中。确保:

  • 在任何其他自定义脚本
  • 之前,jQuery作为第一个文件添加在标头中

示例:

<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
</head>

答案 2 :(得分:0)

  • 确保您已将Javascript库文件包含在头部。
  • 确保在任何其他JS文件之前加载Javascript库文件,在您的情况下Main.js

答案 3 :(得分:0)

此错误即将发生,因为您尚未添加jQuery库文件。 您也可以使用CDN(内容分发网络)调用库文件,也可以在main.js之前下载库文件并调用jquery库