我正在开发一个使用pinax的网站。在我的一个模板中,我试图打开一个简单的jquery对话框。然而,我一直收到"Dialog not a function“javascript错误。我使用的是jquery 1.2.6和jquery-ui 1.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>
有人能解释一下为什么会发生这样的事情吗?
发布于 2010-10-24 19:12:41
我遇到了与上面描述的完全相同的问题(messagebox只打开一次)。我遇到的问题是messagebox中的html也加载了jquery。因为我不需要它,所以我可以毫不费力地删除它。否则,您可能不得不进一步确定问题。
发布于 2012-05-26 08:35:22
在某些情况下,如果同时加载多个和不同的JQuery版本,可能会出现此错误。
在我的例子中,我有一个使用母版的ASP页面。我的主页包含JQuery 1.4.2.min我的aspx页面包含JQuery 1.7.2.min
当从控件调用JQuery函数时,它对使用哪个JQuery感到困惑,因此即使该脚本可以声明JQuery已加载(它可以显示JQuery版本),它也无法找到任何JQuery函数。
当我从aspx文件中删除本地JQuery 1.7.2.min,并将我的mater从1.4.2.min更新到1.7.2.min时,这个问题就消失了。
发布于 2012-08-04 08:56:34
Doug Neiner的回答真的很有帮助。我的情况稍微复杂了一点,但仍然是一样的:
我从页面A打开了一个对话框,它加载页面B,如下所示:
$('#MyDiv').dialog({
autoOpen: false
})
$("#MyDiv").load("PageB.aspx", function () {
$("#MyDiv").dialog("open");
});
问题是页面A和B都包含了jQuery。请注意:如果您正在将另一个页面加载到对话框中,则它不需要包含相同的js。
https://stackoverflow.com/questions/1965026
复制相似问题