jQuery UI 1.8.16对话框不再显示

时间:2011-10-28 14:04:23

标签: jquery-ui-dialog

刚刚从1.8.5更新了jQuery UI到1.8.16,我在我的应用程序中成功使用的模态对话框突然停止显示,我的意思是叠加显示正确,但实际框根本没有显示。

对话框的创建和使用很简单:

var dlg=$('<div></div>').dialog({modal:true,autoOpen:false});
dlg.html('some content');
dlg.dialog('open');

这曾经很好用。现在我只是得到叠加层,没有实际的对话框。

必需的JS被正确加载(单个jQuery UI文件,包含所有依赖项,加上jQuery lib),还有CSS(使用Smoothness主题),使用Firebug进行检查。

Firebug控制台中没有错误或警告。

我对下载的发行版进行的唯一更改是通过删除版本号和“ui”重命名某些文件,即 jquery-ui-xyz.js 变为 jqueryui.js 。正如我所说,脚本加载正常。

我在这里看到了关于同一问题的几个问题,但没有真正的答案。在回滚或开始更改我以前工作的代码之前,如果我在这里遗漏了某些内容,请告诉我。

非常感谢。

1 个答案:

答案 0 :(得分:2)

解决。其中一个愚蠢的案例,其中明显的问题只是一个红色的鲱鱼,真正的问题在于其他地方。

我所做的是,在我的MVC框架中修改了单个变量 ,这导致jQuery UI脚本和其他基本脚本加载到head部分,而不是body部分。我在升级jQuery之前做了这个,并没有测试效果,假设什么都不会改变:什么,我只是移动脚本,如果出现问题我会收到错误,我会抓住它。

事情是,其中一个脚本包含上面的代码。它现在加载到head。我必须假设在文档的head部分中通过JS创建 div 元素是行不通的,是吗?这是一个无声的失败,没有发出错误!

然后我升级了jQuery ,并得到了上述问题。由于缺少任何错误报告,我得到了进一步的误导,并且通常的罪魁祸首(没有正确加载脚本和CSS)不应该归咎于此。

我把头发拉了出来,直到今晚拿到它并解决了。我应该得到的是,不要对项目进行增量更改,在每个步骤进行测试,尤其是在这样一个重要的子框架大修之前。

所以,向jQuery团队道歉。我的坏。

TL; DR:这不是jQuery的错。一直以来都是糟糕的开发实践。另外,请确保不要在页面的head部分创建jQuery UI Dialog对象(无论听起来多么愚蠢)。