我正在开发一个网站使用pinax.在我的一个模板我在努力打开一个简单的jquery对话框。但是我不断收到的"对话不是一个功能"javascript错误。我使用jquery1.2.6和技-ui1.6.我javascript和HTML如下:

<html>
<head>
<link type="text/css" href="/site_media/smoothness/ui.all.css" rel="stylesheet" />
<script src="/site_media/jquery.js" type="text/javascript"></script>
<script src="/site_media/ui/ui.core.js" type="text/javascript"></script>
<script src="/site_media/ui/ui.draggable.js" type="text/javascript"></script>
<script src="/site_media/ui/ui.resizeable.js" type="text/javascript"></script>
<script src="/site_media/ui/ui.dialog.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
                    $('#dialogbox').dialog();
            });
 </script>
 </head>
 <body>
   <div id="dialogbox" title="dialog title">
     <p>Test dialog</p>
   </div>
 </body>
 </html>

有人可以请解释这是为什么发生?

有帮助吗?

解决方案

我想重复你的错误均通过使用公共谷歌的版本,并通过下载的遗产(1.6)版本的技网站和手动,包括文件。既没有引起一个问题(http://jsbin.com/uloqi 看到它的工作).

因此,这意味着以下之一或许可以解决你的问题:

  1. 使用的工具像萤火火狐验证每个JS文件被包括在内。
  2. 确保没有任何其他JS在网页上,可能导致错误。
  3. 验证你的正确版本的文件下载。

我不知道还有什么要告诉你,因为你的代码贴,当搭配的正确的文件,完美的作品。

其他提示

如上面所描述的(消息框仅打开一次)

我有完全相同的问题。我有问题是在MessageBox的HTML还加载jQuery的。因为我不需要它,我可以没有问题删除。否则,你可能要有点进一步牵制该问题。

在某些情况下,你可以,如果multible和不同版本的JQuery在同一时间下载得到这个错误。

在我的情况下,我具有使用的一个主单元ASP页。 我的主人,包括JQuery的1.4.2.min 我的aspx页面我包括JQuery的1.7.2.min

在jQuery函数从一个控件调用,它糊涂了哪些JQuery的使用,因此即使该脚本可以指出JQuery的加载(这可能显示JQuery的版本),但未能找到任何JQuery的功能。

当我删除我的本地JQuery的1.7.2.min列入了我的aspx文件,并从1.4.2.min到1.7.2.min更新了我的母校,问题就走开了。

由Doug Neiner答案帮助真的。我的案件比较复杂一点,但仍然涉及到相同点:

我打开一个对话框从网页A哪些负载网页B是这样的:

$('#MyDiv').dialog({
    autoOpen: false
})
$("#MyDiv").load("PageB.aspx", function () {
    $("#MyDiv").dialog("open");
});

的问题是,既页A和B都包括jQuery的。注意:如果要加载其他页面到一个对话框,它并不需要包括相同的JS

如前所述,您可能覆盖现有的库。

处理它的一种方式是,以确保正确的文件被加载。

另一种方法是插入对话并在对话框中的内容之间的iframe中。 I帧被浏览器视为有自己的脚本一个单独的页面。因此,“之上”的iframe内容的脚本,将是“下”的iframe对话的脚本分开。

我只是有这个问题太,唯一的解决方案,为我的作品是拯救像对话框参考:

var confirmDialog = $( "#dialog-confirm" ).dialog({
    autoOpen: false
});
$("#test").click(function () {
    confirmDialog.dialog('open');
});

否则,一切我已经试过失败

.dialog() is not a function error
希望这有助于。

我有同样的问题。我的是自己从jQuery UI的更新造成从1.11.4至1.12.1。我安装使用的NuGet升级,并从的NuGet我的项目删除旧的1.11.4参考,但从来没有增加新的项目引用。

在本地运行应用程序伟大的工作,但在部署新的1.12.1文件时从不与发布成功了。我希望这可以帮助别人。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top