当让 jQuery UI 对话框弹出一个选项卡视图时,我遇到了一个问题,该选项卡视图又包含三个浮动面板(div)。代码是这样的
<body>
<div id='dialog'>My Dialog</div>
<div id='mytabs'>
<ul><li><a href='#tabA'>Tab A</a></li><li><a href='#tabB'>Tab B</a></li></ul>
<div id='tabA'>
<div id='toolpanel' style='float:left;width:40px'>Content</div>
<div id='proppanel' style='float:left;width:200px'>Content</div>
<div id='datapanel' style='float:left;clear:right;width:100px'>Content</div>
</div>
<div id='tabB'>...</div>
</div>
</body>
最初,我正在扩展第三个面板以填充整个可用客户区。类似的东西
var wh = $('#tabA').width() - $('#toolpanel').outerWidth() - $('#proppanel').outerWidth();
$('#datapanel').css('width',wh + 'px');
$('#dialog').dialog({modal:true});
但是,通过这种设置,我发现第三个面板 datapanel 在我打开对话框后立即漂浮在其兄弟姐妹的下方。我暂时采取了一些措施来防止这种情况发生
$('#datapanel').css('width',wh - 28 + 'px');
本质上,防止数据面板占用放置其兄弟姐妹后剩余的全部空间。
我不明白。我认为 jQuery UI 对话框确实进入了一个默认 zIndex 为 1000 的绝对定位层。如果是这种情况,为什么要尝试显示它会导致我的数据面板向下浮动?为什么那一点算术,wh - 28,阻止这种情况发生?
我非常感谢您对此提供的任何帮助。