thepoy 发表于 2019-9-8 15:25

django在js报错Uncaught ReferenceError: $ is not defined

本帖最后由 thepoy 于 2019-9-9 17:03 编辑

有个base.html,如下:
{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
    <title>{{ title }}</title>

</head>
<body>
<scrpit type="text/javascript" src="{% static 'js/jquery.js' %}"></scrpit>
<scrpit type="text/javascript" src="{% static 'js/base.js' %}"></scrpit>
<scrpit type="text/javascript" src="{% static 'js/bootstrap.js' %}"></scrpit>
<script type="text/javascript" src="{% static 'js/swiper.jquery.js' %}"></script>

还有个继承自base.html的base_main.html:
{% extends 'base.html' %}
{% load static %}

{% block ext_css %}
    {{ block.super }}
    <link rel="stylesheet" href="{% static 'axf/main/css/main.css' %}">
{% endblock %}

{% block header %}
    <header></header>
{% endblock %}

最后就是出问题的html,继承自base_main,虽然将下面的js继承过来,但是并没有生效:
<scrpit type="text/javascript" src="{% static 'js/jquery.js' %}"></scrpit>
<scrpit type="text/javascript" src="{% static 'js/base.js' %}"></scrpit>
<scrpit type="text/javascript" src="{% static 'js/bootstrap.js' %}"></scrpit>
<script type="text/javascript" src="{% static 'js/swiper.jquery.js' %}"></script>
具体代码如下:
{% extends 'base_main.html' %}
{% load static %}

{% block ext_js %}
    {{ block.super }}
{#    <script type="text/javascript" src="{% static 'js/jquery.js' %}"></script>#}
    <script type="text/javascript" src="{% static 'axf/main/js/market.js' %}"></script>
{% endblock %}

以致于报错:
market.js:1 Uncaught ReferenceError: $ is not defined

查看源代码:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
</head>

<body>
<scrpit type="text/javascript" src="/static/js/jquery.js"></scrpit>
<scrpit type="text/javascript" src="/static/js/base.js"></scrpit>
<scrpit type="text/javascript" src="/static/js/bootstrap.js"></scrpit>
<script type="text/javascript" src="/static/js/swiper.jquery.js"></script>

   


    <script type="text/javascript" src="/static/axf/user/js/register.js"></script>

js文件其实已经继承过来了,但是并没有起作用,如果取消掉第11行<script type="text/javascript" src="{% static 'js/jquery.js' %}"></script>的注释,就不会报此错误。
从代码中看,jq是在js之前加载的,但是为什么没有能够被js调用呢?


嗯,拼写错误导致的,大意了

井右寺 发表于 2019-9-9 08:32

文件已经被包含了,但是没有生效对吧?
把jquery的引入往上提,提到最上面的位置试试呢?
有可能是jq还没加载进来的时候,别的js文件已经开始调用他了

thepoy 发表于 2019-9-9 10:13

本帖最后由 thepoy 于 2019-9-9 10:16 编辑

井右寺 发表于 2019-9-9 08:32
文件已经被包含了,但是没有生效对吧?
把jquery的引入往上提,提到最上面的位置试试呢?
有可能是jq还没 ...
最开始jquery就是在第一位,没生效我把它往下挪了挪,现在已经挪回了第一位,还是不生效。
我觉得原因就是jq没加载完,就被调用了。
但源码里jq确实是在js之前加载了啊。
现在的代码如下:
<scrpit type="text/javascript" src="/static/js/jquery.js"></scrpit>
<scrpit type="text/javascript" src="/static/js/base.js"></scrpit>
<scrpit type="text/javascript" src="/static/js/bootstrap.js"></scrpit>
<script type="text/javascript" src="/static/js/swiper.jquery.js"></script>

   


    <script type="text/javascript" src="/static/axf/user/js/register.js"></script>

井右寺 发表于 2019-9-9 10:39

thepoy 发表于 2019-9-9 10:13
最开始jquery就是在第一位,没生效我把它往下挪了挪,现在已经挪回了第一位,还是不生效。
我觉得原因就 ...

F12控制台 $ 输出一下,看有没有值,会不会是jq错误了
你也没写异步加载,按理应该会顺序加载的,不会错的才对啊
页: [1]
查看完整版本: django在js报错Uncaught ReferenceError: $ is not defined