jQuery UIダイアログをタブビューにポップアップ表示するときに問題が発生しました。タブビューには3つのフロートパネル(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>
もともと、私は3番目のパネルを拡張して、利用可能なクライアント領域全体を埋めていました。の線に沿った何か
var wh = $('#tabA').width() - $('#toolpanel').outerWidth() - $('#proppanel').outerWidth();
$('#datapanel').css('width',wh + 'px');
$('#dialog').dialog({modal:true});
ただし、この設定では、ダイアログを開くとすぐに、3番目のパネルであるdatapanelが兄弟の下に浮かんでいることがわかりました。私はこれを防いでいる小さなハックを一時的に入れました
$('#datapanel').css('width',wh - 28 + 'px');
基本的に、データパネルが兄弟を配置した後に残ったスペース全体を占有するのを防ぎます。
理解できません。jQuery UIダイアログは、デフォルトのzIndexが1000の絶対位置のレイヤーに組み込まれると思いました。その場合、なぜそれを表示しようとすると、データパネルがフロートダウンするのでしょうか。そして、なぜその算術のビット、wh --28、それが起こらないようにする必要がありますか?
これで助けていただければ幸いです。