Конфликт JQuery с базовым Django-файлом .js - PullRequest
0 голосов
/ 03 февраля 2019

У меня есть базовый шаблон в Django, в котором я использую app.js.Этот app.js используется в theme .

Теперь я хочу получить модальное всплывающее окно с помощью ajax и для которого мне нужно вызвать функцию Jquery.Страница, на которой присутствует кнопка для всплывающего модального окна, расширяет файл base.html.Таким образом, когда я пытаюсь вызвать страницу, я получаю следующую ошибку:

Ошибка в консоли enter image description here

Однако, когда я надеваюНе распространяйте base.html на моей странице, я не получаю никакой ошибки и могу использовать модальное всплывающее окно.Вот код моей страницы

new.page

{% extends 'base.html' %}
 {% load static %}
{% include "devices/_modal.html" %}


{% block content %}
  <div class="container mt-3">
        <div class="row">
          <div class="col-12 mb-3">

            <button class="create-book btn btn-primary" type="button" name="button">
              <span class="fa fa-plus mr-2"></span>Create book</button>
          </div>

        </div>


  </div>


{% endblock  %}

{% block extra_js %}


    <script type="text/javascript" charset="utf8"  src="{% static "user/js/jQuery-3.3.1.js"%}"></script>
        <script type="text/javascript"  src="{% static "user/js/bootstrap.min.js" %}"></script>
    <script type="text/javascript" charset="utf8"  src="{% static "user/js/jquery.bootstrap.modal.forms.min.js"%}"></script>

    <script type="text/javascript">
    $(function () {
      $(".create-book").modalForm({formURL: "{% url 'addLocation' %}"});

    });
    </script>

{% endblock extra_js %}

Мой base.html

<!DOCTYPE html>
{% load user_tags %}
 {% load static %}

<html lang="en">
<head>

{% block extra_head %}{% endblock %}
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <meta name="description" content="">
    <meta name="author" content="">
    <link rel="icon" href="{% static "user/images/favicon.ico"%}" type="image/x-icon">
    <title>Power Management</title>
    <!-- CSS -->
    <link rel="stylesheet" type="text/css" href="{% static 'user/css/app.css' %}">
    <style>
        .loader {
            position: fixed;
            left: 0;
            top: 0;
            width: 100%;
            height: 100%;
            background-color: #F5F8FA;
            z-index: 9998;
            text-align: center;
        }

        .plane-container {
            position: absolute;
            top: 50%;
            left: 50%;
        }
    </style>
</head>
    <body class="light">
        {% block content %}
        {% endblock %}

         {% block grid  %}
        {% endblock %}

        {% block scripts %}

            <script src="{% static "user/js/app.js" %}"></script>
        {% endblock %}
        {% block extra_js %}

        {% endblock extra_js %}
    </body>
</html>

Есть ли обходной путь?Как я могу назвать свой Jquery?

1 Ответ

0 голосов
/ 03 февраля 2019

Я лично не использовал Django, но я думаю, что вы могли бы использовать функцию noConflict, чтобы избежать использования знака доллара ($) для вызовов JQuery.

Вы можете использовать его так:

JQuery.noConflict();
JQuery(document).ready(function() {
    //Code
});

Если хотите, вы можете использовать свой собственный псевдоним, назначив переменную для JQuery.noConflict (), например:

var customJQueryCall = JQuery.noConflict();
customJQueryCall(document).ready(function() {
    //Code
});

Вы также можете проверить это в их API:

https://api.jquery.com/jquery.noconflict/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...