1

ZK で選択したアイテムで画像/アイコンを表示する方法を知っている人は誰でもCombobox。たとえば、このZK Live Demoは、ドロップダウンのそれぞれに画像を配置する方法を示していますComboitem。ただし、この例でアイテムを選択すると、コンボボックスにはそのアイテムのラベルが表示されますが、画像は表示されません。

4

2 に答える 2

2

現在、それをカスタマイズする必要があります(選択したアイテムの画像ノードをコンボボックスにコピーします)、あなた自身の簡単なサンプル:

<zk xmlns:w="client">
    <style>
        .z-combobox-inp,
        .z-combobox-rounded-inp {
            padding-left: 30px;
        }
    </style>
    <combobox>
        <attribute w:name="bind_"><![CDATA[
            function (a, b, c) {
                this.$bind_(a, b, c);
                // anchor used to position selected image
                var n = this.$n(),
                    ref = n.firstChild,
                    span = document.createElement('span');
                jq(span).css('position', 'relative')
                    .addClass('custom-selected-image-anchor');
                n.insertBefore(span, ref);
            }
        ]]></attribute>
        <attribute w:name="_hilite2"><![CDATA[
            function (sel, opts) {
                this.$_hilite2(sel, opts);
                if (opts && opts.sendOnSelect && sel) {
                    var $anchor = jq(this.$n()).find('.custom-selected-image-anchor');
                    $anchor.find('.custom-selected-image')
                        .each(function () {
                            this.parentNode.removeChild(this);
                        });
                    $anchor[0].appendChild(
                        jq(sel.getImageNode()).clone() // clone node
                            .css({'position': 'absolute', // add style
                                'left': '0px',
                                'top': '3px'}) // also add class
                            .addClass('custom-selected-image')[0]       
                    );
                }
            }
        ]]></attribute>
        <comboitem label="test" image="images/battery.gif" />
        <comboitem label="test 2" image="images/left_arrow.png" />
    </combobox>
</zk>
于 2013-06-24T01:21:52.917 に答える