【问题标题】:jQuery not recognized in extended html python flask扩展的 html python 烧瓶中无法识别 jQuery
【发布时间】:2019-04-29 21:37:08
【问题描述】:

不确定这里发生了什么。似乎 jQuery 没有从 base.html 文件“扩展”到外部文件。

我有:

#base.html

<!doctype html>
<html class="no-js" lang="en">

<head>
...
... # css imports
</head>

<body>

   # some fixed stuff

   {% block body %}

      # some stuff specific to base.html

   {% endblock %}

   # js imports at the end of the body

   <script src="static/js/jquery-3.1.0.min.js"></script>

    ... # various other js
</body>
</html>

然后我有另一个html文件:

#test.html

{% extends "base.html" %}

{% block body %}

    # some stuff

   <script type="text/javascript">

        $(document).ready( function () {
             alert("foo")
         } );

    </script>

{% endblock %}

现在,我没有收到任何警报。但是,如果我使用纯 javascript,它会按预期工作。

我注意到如果我在 test.html 中再次导入 jQuery,jQuery 可以正常工作。但那扩展的意义何在?

一定有我遗漏的东西。顺便说一句,这似乎只发生在 jQuery 上,所有其他 javascript 库似乎都可以很好地扩展。

【问题讨论】:

  • 你试过在body块之前导入jQuery吗?
  • @MiniGunnR 好电话!例如,如果我将它放在头部,它似乎确实有效。如果您足够关心解释原因并将其作为答案发布,我将很乐意接受。
  • 很高兴它成功了。我写了一个答案。

标签: javascript python jquery html flask


【解决方案1】:

添加这一行。我希望这会起作用。

<script type="text/javascript" src="{{ url_for('static', filename='js/jquery-3.1.0.min.js') 
}}"></script>

【讨论】:

    【解决方案2】:

    $(document).ready( function () { 执行的那一刻,$ 尚未别名为jQuery,它尚未加载。

    【讨论】:

    • 谢谢你的回答,但我不确定我是否理解,你能扩展一点吗? jQuery 不应该从扩展的 base.html 加载吗?如果没有,解决这个问题的唯一方法是简单地重新调用 test.html 中的 jQuery 脚本标签吗?继承呢?
    • 它可能有助于“查看源代码”或在浏览器中检查以查看页面是如何变平的。 body 块在拉入 jQuery 的位之前展开。
    【解决方案3】:

    这真的很简单。以下代码运行时,需要使用jQuery运行。

    <script type="text/javascript">
    
        $(document).ready( function () {
             alert("foo")
         } );
    
    </script>
    

    但是,您的 jQuery 是在这些命令之后加载的,而它需要放置在这些命令之前。

    这就像您在将水倒入之前先从玻璃杯中喝水一样。您需要先将水放入玻璃杯中,然后再饮用。我不知道这个例子是否简单。

    【讨论】:

    • 伙计,我觉得自己很愚蠢。今天回过头来看,一目了然。我想这是你工作时间太长而不再看清楚的事情之一。 :) 谢谢你!
    • 我们都经历过。没什么大不了的。
    猜你喜欢
    • 2016-10-27
    • 1970-01-01
    • 1970-01-01
    • 2012-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多