0

当我单击组合框时,选项会在此组合框下方打开

当我在鼠标滚轮的帮助下滚动窗口时,窗口正在向下滚动,但组合框选项出现在同一个地方。此组合框选项值下方显示在中间名下方

看这里了解详情点击这里

小提琴示例在这里

4

2 回答 2

1

这似乎是一个已知问题(请参阅 tracker),目前您需要自己同步位置。

例如,

<zk>
    <script><![CDATA[
        function addSyncScroll (wgtId, parentId, add) {
            var wgt = zk.Widget.$('#'+wgtId),
                parentWgt = zk.Widget.$('#'+parentId);
            if (wgt && parentWgt) {
                var cbxToSync = parentWgt._cbxToSync,
                    idx;
                if (!cbxToSync) {
                    initSyncScroll(parentWgt);
                }
                cbxToSync = parentWgt._cbxToSync;

                if (cbxToSync) {
                    if (!wgt._syncPopupScroll) {
                        wgt._syncPopupScroll = function () {
                            zk(wgt.getPopupNode_()).position(wgt.getInputNode(), "after_start");
                        }
                    }
                    if (add) {
                        if (cbxToSync.indexOf(wgt) < 0)
                            cbxToSync.push(wgt);
                    } else {
                        if ((idx = cbxToSync.indexOf(wgt) < 0) > -1) {
                            cbxToSync.splice(idx, 1);
                        }
                    }
                }
            }
        }
        function initSyncScroll (parentWgt) {
            parentWgt._cbxToSync = [];
            parentWgt.$n().onscroll = function (event) {
                var cbxToSync = parentWgt._cbxToSync;
                for (var i = 0; i < cbxToSync.length; i++) {
                    cbxToSync[i]._syncPopupScroll();
                }
            }
        }
    ]]></script>
    <div width="200px" height="300px">
        <div id="parent" width="100%" vflex="1" style="overflow:auto;">
            <label value="Some text" />
            <textbox value="01" />
            <textbox value="02" />
            <textbox value="03" />
            <combobox>
                <attribute name="onOpen"><![CDATA[
                    Clients.evalJavaScript("addSyncScroll('"+self.getUuid()+"', '"+parent.getUuid()+"', "+self.isOpen()+")");
                ]]></attribute>
                <comboitem label="Simple and Rich" />
                <comboitem label="Cool!" />
                <comboitem label="Ajax and RIA" />
            </combobox>
            <textbox value="04" />
            <textbox value="05" />
            <textbox value="06" />
            <textbox value="07" />
            <textbox value="08" />
            <textbox value="09" />
            <textbox value="10" />
            <textbox value="11" />
            <textbox value="12" />
            <textbox value="13" />
            <textbox value="14" />
            <textbox value="15" />
        </div>
    </div>

</zk>
于 2013-03-06T11:33:02.630 回答
1

这是 ZK 中的一个已知问题,您可以在此处查看ZK Issue trcker

可能需要一些时间,在未来的版本中,我们将得到一些解决方法,根据@Ben 的说法,它将在未来修复。

于 2013-03-06T11:34:57.353 回答