TypeError:$(...)。dialog不是函数Error

时间:2013-10-18 06:22:57

标签: javascript jquery jquery-ui

我已经在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 个答案:

答案 0 :(得分: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)。 此外,它使用jQuery UI的自定义版本,该版本不包含dialog小部件,因此是第一条错误消息。

您可以尝试调整插件以使用更新的版本(遵循其自己网站上的评论)或计算冲突并在同一页面上使用两个库。

现在取决于你。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

确保您在相应文件夹中的jsp / html中引用了js库。通常它是WebContent文件夹或您在jsp中指定的路径。对我来说,它位于/ resources / scripts文件夹中。一旦我在那里添加了库