Dandelion Datatables не может загрузить jquery-ui

Недавно я установил Dandelion datatables 1.1.1 и не могу понять, как активировать jquery-ui, который поставляется с базовой библиотекой. Мне нужно, чтобы использовать DatePicker.

В моем проекте используется следующая архитектура:

src
web 
|__ resources
    |__ css
    |__ js
|__ WEB_INF
    |__ views
        |__ ... html views
    |__ spring-servlet.xml

Я загружаю ресурсы одуванчика в весенний сервлет через:

<mvc:resources mapping="/dandelion/**" location="classpath:/META-INF/resources/dandelion/"/>

В папке js у меня есть datepicker-init.js:

$(document).ready(
  function () {
    $( "#datepicker" ).datepicker({
      changeMonth: true,
      changeYear: true
    });
  }
);

Затем я пытаюсь загрузить этот скрипт в моем заголовке

<script th:src="@{/resources/js/datepicker-init.js}"></script>

а затем использовать его на моей HTML-странице:

<html xmlns:th="http://www.thymeleaf.org"
      xmlns:dt="http://www.thymeleaf.org/dandelion/datatables">
               ....
              <div id="filter_panel">
                    <form th:action="@{/requests}" th:object="${requestRegisterModel}"
                          method="post">
                        <input id="datepicker" type="text" />
                    </form>
              </div>

но получите Uncaught ReferenceError: $ не определена ошибка в консоли браузера. Я знаю, что эта ошибка возникает из-за того, что jquery-ui не определен, но я не могу загрузить скрипты в своем заголовке:

<script type="text/javascript" src="//code.jquery.com/jquery-1.11.0.js"></script>
<script type="text/javascript" src="//code.jquery.com/ui/1.11.0/jquery-ui.js"></script>

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

Консоль браузера

1 ответ

Решение

Хорошо, наконец-то у меня это работает. JQuery поставляется вместе с Dandelion Datatables, поэтому нет необходимости импортировать его дважды. Но jquery загружается только после загрузки таблицы, поэтому мне нужно включить скрипт с jquery-ui

<script type="text/javascript" src="//code.jquery.com/ui/1.11.0/jquery-ui.js"></script>

после таблицы, например, в нижнем колонтитуле.

Другие вопросы по тегам