默认情况下,jQuery对话框是否显示为隐藏
Does jQuery dialog display as hidden by default?
我在一个简单的典型用例中使用jQuery对话框:
在 Javascript 中:
$('myDialog').dialog({
modal: true;
});
在 HTML 中:
<div id="myDialog" title="Dialog Title">
Dialog contents here
</div>
但是,我用来控制myDialog
div的布局和外观的CSS托管在我的本地机器无法访问的服务器上(不要问为什么)。因此,在Firebug中,我看到找不到CSS文件的网络404错误。
当我在本地测试此对话框时,它显示得非常好。但是,我刚刚注意到,在触发执行对话框调用的代码之前,myDialog
div 的内容实际上显示在我的 HTML 页面上。
所以,这让我相信以下两件事之一:
- 默认情况下,jQuery对话框各自的
<div>
元素是不可见/隐藏的;但是,浏览器找不到CSS文件的这种奇怪情况导致<div>
在对话框弹出屏幕之前向用户显示;或 - 默认情况下,jQuery 对话框各自的
<div>
元素是可见的,我必须在页面加载时采取措施将其隐藏
有人可以告诉我这两个断言中的哪一个是正确的吗?
如果前一个断言是正确的,那么当我们将代码推送到我们的开发环境(该环境确实可以访问 CSS 文件)时,问题应该会自行解决。
如果后一种断言是正确的,那么如何在页面加载时隐藏myDialog
div?
提前感谢!
第二个或多或少是正确的。当页面加载时,<div>
是可见的,因为默认情况下 HTML 中的所有<div>
都是可见的。jQuery只在以后出现。
您应该简单地默认隐藏<div>
,并让.dialog
决定何时显示它,例如:
.CSS:
.hidden { display: none }
.HTML:
<div id="myDialog" class="hidden" title="Dialog Title">
Dialog contents here
</div>
如果您不这样做,那么如果对话框不应该在页面加载时立即打开,那么事情就会从"不受欢迎"恶化到"不可接受"。请参阅示例。
您可以将自动打开选项设置为 false。
$('foo').dialog({
autoOpen: false,
title: 'I''m hidden',
width: 500,
height: 500
});
你的第二个断言是对的。在div 上调用.dialog()
会立即显示对话框
相关文章:
- 在jquery中为显示/隐藏设置cookie
- PHP Javascript显示/隐藏按钮不工作
- 打开/关闭按钮以显示/隐藏内容
- 显示隐藏复选框
- 在bootstrap中显示隐藏特定的li
- JQuery上下文菜单显示/隐藏问题
- JQuery在单击时停止显示/隐藏
- HTML5在提交并显示所需标签后显示隐藏的表单元素
- 使用 jQuery 切换显示/隐藏
- 显示/隐藏有关模型更改的指令内容
- Bootstrap在页面加载缓慢时会立即显示隐藏的模式对话框
- 根据特定条件使用ng显示/ng隐藏来显示/隐藏元素
- 显示/隐藏不起作用
- 使用ng-hide根据条件显示/隐藏按钮
- 仅在第一个结果中显示/隐藏MySQL结果函数
- 显示/隐藏http://ftp链接
- 在显示/隐藏中单击时删除的文本
- 是否可以在不重新渲染的情况下显示/隐藏父对象中的元素
- 将页面内容向左移动时显示/隐藏右侧面板
- 显示/隐藏将不会加载