Javascript jQuery UI.dialog()方法在IE6中以静默方式失败
我在IE6和jQueryUI方面遇到了一些问题。我有一个弹出对话框(模式,如果有关系的话),它向用户显示一个带有一些信息的“是/否”对话框。为了方便这一点,我使用autoOpen=false构建了对话框,然后根据需要调用$('#popup').show(),以响应各种不同的事件。现在,在IE6(据我所知,只有IE6)中,.dialog方法偶尔会失败,但仍然返回jQuery对象。因此,.show()方法不是显示弹出窗口,而是在html页面中显示一个div容器 这可能是什么原因造成的,我如何纠正这种行为 谢谢Javascript jQuery UI.dialog()方法在IE6中以静默方式失败,javascript,jquery,jquery-ui,internet-explorer-6,Javascript,Jquery,Jquery Ui,Internet Explorer 6,我在IE6和jQueryUI方面遇到了一些问题。我有一个弹出对话框(模式,如果有关系的话),它向用户显示一个带有一些信息的“是/否”对话框。为了方便这一点,我使用autoOpen=false构建了对话框,然后根据需要调用$('#popup').show(),以响应各种不同的事件。现在,在IE6(据我所知,只有IE6)中,.dialog方法偶尔会失败,但仍然返回jQuery对象。因此,.show()方法不是显示弹出窗口,而是在html页面中显示一个div容器 这可能是什么原因造成的,我如何纠正这种
$('#myDialog').dialog({
autoOpen: false,
buttons: {
"No": function()
{
$(this).dialog('close');
//do stuff
},
"Yes": function()
{
$(this).dialog('close');
//do stuff
}
},
draggable: false,
modal: true,
resizable: false,
title: "Confirmation",
width: "500px",
zIndex: 2000
});
后来
$('#myDialog').dialog('open').show();
相当标准
新信息
我正在加载一个页面,该页面使带有ajax的对话框位于另一个对话框中,该对话框可以重复创建和销毁。现在,每次我的页面加载ajax时,.dialog(opts)都应该重新实例化dialog div,对吗?我发现情况就是这样
1.)外部对话框使用ajax将其内容替换为“我的内容”
2.“我的内容”将启动以前创建并设置为“不自动打开”的对话框
3.)当内部对话框关闭时,外部对话框被破坏
4.)外部对话框将重新打开。内部对话框在ie6中不再显示为对话框。这只发生在ie6中。您应该使用
$('#myDialog').dialog('open');
而不是
$('#myDialog').show();
第一种方法显示实际的对话框,而您使用的方法只会显示
#myDialog
项(没有UI对话框)show()
方法是核心jQuery库的一部分,不应用于调用对话框。我也遇到过类似的情况,因此无法重用该对话框。每次我都必须销毁并重新创建两个对话框。我使用bgiframe:true,而且我在I6、FFox等方面从未遇到任何问题
更多信息:
关于。顺便问一下,当您在打开模态之前隐藏它时,您是使用style=“display:none”作为隐藏属性还是CSS类或jquery 我问这个问题的原因是,如果您使用simply style=“display:none”,我永远不会对使用dialog(“open”)始终完美地显示模式有任何问题,但是如果我使用css或jquery,我总是有问题 您可能需要测试它
马库斯一个关于这个问题的链接/屏幕广播,或者展示你的脚本可能会有助于解决我的问题。我错了。我正在使用$('#blah').dialog('open').show();在创建对话框之前,内容是隐藏的。您不需要在对话框(“打开”)之后运行show()方法,UI对话框将自动使$('#blah')的内容可见,但不会。至少在任何IE变体中都没有。我已经彻底测试了这个场景。对不起,你错了。我准备了一个小演示,证明您不需要使用show()方法。查看加载对话框1。通过对话框2的ajax加载数据。以模式对话框的形式打开对话框2。不起作用。您必须显示它,而我仍然有问题,不管文本只是推到文档底部,而不是在实际的弹出窗口中显示。除了说出你认为正确的语义和忽略解决核心问题之外,你没有做任何事情来解决我最初的问题。破坏和重新创建似乎会扰乱“模态”对话框的行为。如中所示,灰色调光位未移除。也许是关闭和摧毁?我想我会试试的。我只是试了一下,因为这似乎是唯一可能的解决办法,我在第二轮中就成功了。我认为疯狂的撞车是不正确的行为:P。非常感谢!从开发开始,我就有了bgiframe。没有骰子。任何读过这篇文章的人:bgiframe对于ie6和jQueryUI都是必不可少的。这与我的问题无关,但是没有bgiframe你会头疼的。