【发布时间】:2011-01-10 14:17:56
【问题描述】:
我想将 jQuery 对话框的覆盖设置为图像,但似乎无法管理任务。
我在页面上有其他对话框,我不希望有背景图像,因此设置覆盖背景的 css 不能作为一揽子解决方案。
我尝试了很多不同的方法,并且我认为应用 jQuery 命令来设置带有 css 的叠加层以及将实际对话框 div 和 css 添加到 DOM 时存在时间问题。
这是我到目前为止所尝试的。
$('#submitUpload').click(function(){
$("#uploadStart").dialog('open');
$(".ui-widget-overlay").css({'background-image': 'url("http://www.mydomain.com/images/ftp-page-bg.gif")','opacity':'1'})
$("#uploadForm").submit();
});
或
$("#uploadStart").dialog({
autoOpen: false,
width: 400,
modal: true,
closeOnEscape: false,
draggable: false,
resizable: false,
open: function(event, ui) {
$(".ui-dialog-titlebar-close").hide();
$(".ui-widget-overlay").css({'background-image': 'url("http://www.mydomain.com/images/ftp-page-bg.gif")','opacity':'1'})
}
});
我也尝试在对话框代码上使用 dialogClass 方法,但没有成功。
包含绝对 url 和相对 url,以及带引号或不带引号的 url。
图片存在于目录中。
任何人对如何让 jQuery 应用正确的时间以将图像显示为叠加层有任何想法?
谢谢!
更新
对话框类名称将允许您为整个对话框设置类。我实际上只是想利用特定的 ui-widget-overlay 类并覆盖那里的背景图像。我发现尝试使用 dialogClass 覆盖背景适用于覆盖对话框的背景,而不是覆盖背景。
当对话框被添加到 DOM 时,jQuery 会在 body 标签之前加载它的 div。
我找到了一个解决方案,在对话框的打开方法中,我使用了
$(".ui-widget-overlay").addClass('artFTP');
添加一个类
.artFTP{background-image: url(../../images/ftp-page-bg.gif); opacity:1;}
并确保它是文件中将覆盖覆盖背景图像的最后一个类。
我希望这对某人有所帮助。
感谢 jjross 并 +1,您的回答让我重新回到 jQuery 文档中。
如果有人有更好的解决方案,请发帖。我会很高兴看到它。我认为可能有一种方法可以使用 CSS 来完成任务,但是(对于我的一生)无法弄清楚。
【问题讨论】: