jQuery无法在html文件中工作(在定义之前使用了诸如'$'之类的JS LINT错误)

问题描述 投票:0回答:3

我正在使用HTML,CSS和JS。我正在尝试使用JQuery库,但我的html文件无法识别它。我将它插入到我的外部.js文件上面,所以我不认为这是问题所在。这是我的HTML文件中的内容:

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <script src="js/tether.min.js"></script>
    <script src="js/bootstrap.min.js"></script>
    <script src="js/main.js"></script>

这是我的JS文件中的内容:

$(document).ready(function() {
    $(window).scroll(function() {
        if ($(window).scrollTop() > 970) {
           $('.navbar').addClass('navbar-fixed-top');
        }
    });
});

由于以下错误,我保存此js文件时,我的代码编辑器会抛出错误:

- '$'在定义之前使用过。

- 期望'function and'(''之间只有一个空格

任何人都知道问题可能是什么?提前致谢。

javascript jquery html css twitter-bootstrap
3个回答
2
投票

这可能不是问题,但您可能希望尝试通过HTTPS(https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js)加载jquery文件,尤其是在HTTPS连接上运行站点时。

否则,它在我测试时似乎有效:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
$(document).ready(function() {
	$(window).scroll(function() {
    if ($(window).scrollTop() > 970) {
        $('.navbar').addClass('navbar-fixed-top');
    }
  });
  console.log("done!")
});
</script>

0
投票

问题出在你的<script>标签上,因为@ B.Fleming说可能是HTTPS协议。这个标签工作正常:

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

0
投票

把它放在你使用jQuery的代码的顶部

/* global $ */

交替使用window作为前缀

我不喜欢使用全局$ sign cuz,其他lib也在使用它。我可以使用的是从这个闭包函数获得$

jQuery(function($){
  // document is ready, You may use jquery here and now
  $('body')
})

并且没有使用window.jQuery来定义jQuery

ps,尽可能从https加载东西

© www.soinside.com 2019 - 2024. All rights reserved.