TypeError: $(...).диалог-это не ошибка функция

Я прочитал темы по этой теме на 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) 

3 ответов


у вас есть несколько библиотек 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's 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: http://jqueryui.com/dialog/

обновление

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

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

Теперь все зависит от вас.


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


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