如何在dijit.TooltipDialog上设置zIndex?

时间:2012-05-13 15:09:59

标签: dojo xpages xpages-ssjs

我创建了一个dijit.TooltipDialog,一切正常。但是,如果在工具提示对话框中生成另一个对话框,则它会显示在工具提示对话框后面而不是它上面。我检查了2个对话框上的zIndex,工具提示对话框是1000,另一个对话框是950。

我尝试在相应的容器节点上设置zIndex,并且工具提示对话框的“domNode”都没有运气。那么有谁知道如何在工具提示对话框中设置zIndex?

2 个答案:

答案 0 :(得分:1)

如果您在创建程序化工具提示后检查dom,您会发现 - 工具提示位于<body>下方的覆盖容器中。

如上所述,为此寻求替代方法..但答案如下;为了成功设置z-index,您必须找到正确的节点 - 这不是domNode,因为对话框通过dijit.popup设计具有自己的'layer'。

以下是它的小提琴: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")
   }

答案 1 :(得分: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);
}