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) 
4

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'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 UI 对话框:http: //jqueryui.com/dialog/

更新

在我们就评论聊天后,我发现您正在使用一个名为的插件,该插件inettuts基于真正旧版本的 jQuery 和 jQuery UI 库 (1.2.x)。此外,它使用不包含dialog小部件的 jQuery UI 的自定义版本,因此是第一条错误消息。

您可以尝试调整插件以使用较新的版本(按照其自己网站上的评论)或解决冲突并在同一页面上使用两个库。

现在由你决定。

于 2013-10-18T06:25:05.980 回答
0

在生成的源代码中查看,然后找出所有对jquery的引用,然后检查出只有一个对jquery的引用和一个对jquery UI的引用。

于 2015-01-24T02:37:30.320 回答
0

确保在相应文件夹中的 jsp/html 中拥有要引用的 js 库。大多数情况下,它将是 WebContent 文件夹或您在 jsp 中指定的路径。对我来说,它位于 /resources/scripts 文件夹中。一旦我在那里添加了库

于 2015-09-28T01:34:08.473 回答