Ошибка типа: $ (…) .dialog не является ошибкой функции

8

Я прочитал темы по этой теме на SO, но не смог получить требуемый o/p. Они сказали, что эта проблема возникает из-за того, что некоторые файлы js включаются несколько раз. Но я попытался удалить несколько файлов один за другим, но все равно получаю ошибку TypeError: $(...).dialog is not a function. Где я включаю несколько js файлов? Может кто-нибудь, пожалуйста, укажите это. Спасибо.

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>

<script type="text/javascript" src="{% static "js/bootstrap.js" %}" ></script>
<script type="text/javascript" src="{% static "dashboard/js/jquery-ui-personalized-1.6rc2.min.js" %}" ></script>
<script type="text/javascript" src="{% static "dashboard/js/inettuts.js" %}" ></script>    
<script type="text/javascript" src="{% static "dashboard/js/dashboard.js" %}" ></script>

Я получаю следующие ошибки: -

Error: Syntax error, unrecognized expression: #intro,
    ...nction(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"...    
jquery.min.js (line 4)

TypeError: t.widget.extend is not a function
    ..."drag",e,s)===!1)return this._mouseUp({}),!1;this.position=s.position}return thi...
   jquery-ui.min.js (line 5) 
  • 1
    Почему вы включили так много jquery-библиотек?
  • 1
    Не очень хорошая практика. Многочисленные библиотеки jquery приведут к катастрофе.
Показать ещё 3 комментария

3 ответа

10
Лучший ответ

У вас есть пара jQuery-библиотек, загружаемых на одну и ту же страницу (разные версии одной и той же вещи), что неверно, если вам действительно не нужно поддерживать работу старых плагинов, зависящих от предыдущих версий. В этом конкретном случае вам нужно будет решить конфликты.

Что вам нужно:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>

<script type="text/javascript" src="{% static "js/bootstrap.js" %}" ></script>
<!-- Not so sure what is this, but certainly it another jQuery UI library being loaded on top of the other one -->
<!-- <script type="text/javascript" src="{% static "dashboard/js/jquery-ui-personalized-1.6rc2.min.js" %}" ></script>-->
<script type="text/javascript" src="{% static "dashboard/js/inettuts.js" %}" ></script>    
<script type="text/javascript" src="{% static "dashboard/js/dashboard.js" %}" ></script>

Посмотрите таблицу стилей CSS (играйте с темой): http://jqueryui.com/

Диалоговое окно JQuery UI: http://jqueryui.com/dialog/

UPDATE

После нашего чата в комментариях я узнал, что вы используете плагин под названием inettuts, который основан на действительно старых версиях jQuery и jQuery UI-библиотек (1.2.x). Кроме того, он использует настраиваемую версию пользовательского интерфейса jQuery, которая не включает в себя виджет dialog, следовательно, первое сообщение об ошибке.

Вы можете попробовать адаптировать плагин для работы с более новыми версиями (после комментариев на своем собственном веб-сайте) или решить конфликты и использовать две библиотеки на одной странице.

Это вам теперь.

  • 0
    Я попытался удалить версию 1.9.1 (3-я строка), то есть <script src="http://code.jquery.com/jquery-1.9.1.js"></script> , но все равно выдает мне то же самое ошибка. Кроме того, jQuery UI lib присутствует. Смотрите 4-ую строку.
  • 0
    Удалите все остальные версии jQuery, которые вы добавляете на страницу, и оставьте только те, которые я указал в ответе.
Показать ещё 21 комментарий
0

Убедитесь, что у вас есть библиотеки js, которые вы указываете в jsp/html в соответствующей папке. В основном это будет папка WebContent или путь, указанный вами в jsp. Для меня это было в папке /resources/scripts. Как только я добавил библиотеки там

0

Посмотрите в сгенерированном исходном коде, затем найдите все ссылки на jquery, а затем проверьте, что есть только одна ссылка на jquery и одна на jQuery UI.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню