0

dijit.TooltipDialogを作成しましたが、すべてが正常に機能します。ただし、ツールチップダイアログ内から別のダイアログが作成された場合、ツールチップダイアログの上ではなく、ツールチップダイアログの後ろに表示されます。2つのダイアログでzIndexを確認しましたが、ツールチップダイアログは1000で、もう1つのダイアログは950です。

それぞれのコンテナノードとツールチップダイアログの「domNode」にzIndexを設定しようとしましたが、どちらもうまくいきませんでした。では、ツールチップダイアログでzIndexを設定する方法を知っている人はいますか?

4

2 に答える 2

1

mschr の回答に従って、dijit.TooltipDialog の underlayAttrs プロパティが見つかりませんでした。しかし、それにより、ポップアップ全体のラッパー ノードである _popupWrapper を見つけることができました。このノードの zIndex は 1000 でした。以下のコードで問題が修正されました。

var dij = dijit.byId(dojo.query("[id*='_TooltipDialog_']")[0].id);
dij.onShow = function() {
    dojo.style(dij._popupWrapper,"zIndex",900);
}
于 2012-05-13T23:26:56.033 に答える
1

プログラム ツールチップを作成した後に dom を調べるとわかるように、ツールチップは の下のオーバーレイ コンテナに配置されます<body>

前述のように、これに対する代替方法を探してください..しかし、答えは次のとおりです。z-index を正常に設定するには、正しいノードを見つける必要があります。これは、ダイアログが dijit.popup デザインを介して独自の「レイヤー」を持っているため、domNode ではありません。

ここにフィドルがあります:http://jsfiddle.net/rQHSP/

要するに、これはあなたができることです。

   myDialog.onShow = function() {
        node = this.domNode
        // loop upwards untill we hit a wall or nodes class mathes popup
        while (node 
           && (!node.className || !node.className.match("dijitTooltipDialogPopup")))
              node = node.parentNode

        console.log(dojo.style(node, "zIndex")
   }
于 2012-05-13T15:36:55.860 に答える