jQuery не распознается в расширенной HTML-фляге Python - PullRequest
0 голосов
/ 28 ноября 2018

Не уверен, что здесь происходит.Кажется, что 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, он работает как положено.

Я заметил, что если я снова импортирую jQuery в test.html, jQuery работает нормально.Но какой смысл тогда расширяться?

Должно быть, я чего-то не понимаю.Кстати, это, кажется, происходит только с jQuery, все остальные библиотеки javascript, похоже, прекрасно расширены.

Ответы [ 3 ]

0 голосов
/ 28 ноября 2018

В настоящий момент $(document).ready( function () { выполняется, $ не имеет псевдонима jQuery, который еще не загружен.

0 голосов
/ 28 ноября 2018

Это действительно очень просто.Когда запускается следующий код, он должен работать с использованием jQuery.

<script type="text/javascript">

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

</script>

Однако ваш jQuery загружается ПОСЛЕ этих команд, тогда как он должен быть помещен ДО этого.

Этокак будто вы пьете воду из стакана, прежде чем положить в него воду.Вы должны поместить воду в стакан сначала и затем выпить это.Я не знаю, облегчает ли этот пример или нет.

0 голосов
/ 28 ноября 2018

Добавьте эту строку. Надеюсь, это сработает.

<script type="text/javascript" src="{{ url_for('static', filename='js/jquery-3.1.0.min.js') 
}}"></script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...