0

これは、dijit を使用してチェックボックス付きのドロップダウン メニューを作成する方法です。

        layerList.reverse();
    var menu = new dijit.Menu({
        id : 'layerMenu'
    });
    dojo.forEach(layerList, function(layer) {
        menu.addChild(new dijit.CheckedMenuItem({
            label : layer.title,
            id : layer.title.replace(" ",""),
            checked : layer.visible,
            onChange : function(evt) {
                if (layer.layer.featureCollection) {
                    //turn off all the layers in the feature collection even
                    //though only the  main layer is listed in the layer list
                    dojo.forEach(layer.layer.featureCollection.layers, function(layer) {

                        layer.layerObject.setVisibility(!layer.layerObject.visible);

                    });
                } else {

                    layer.layer.setVisibility(!layer.layer.visible);
                }

            }
        }));
    });

    var button = new dijit.form.DropDownButton({
        label : i18n.tools.layers.label,
        id : "layerBtn",
        iconClass : "esriLayerIcon",
        title : i18n.tools.layers.title,
        dropDown : menu
    });

    dojo.byId('webmap-toolbar-center').appendChild(button.domNode);

ID を知っているため、onChange イベントが発生したときに実行時に個々の dijit.CheckedMenuItem にアクセスできます。dijit には MenuItem の RadioButton がないため、実行時にチェック済みのステータスを変更する方法はありますか。「this.Id」と「evt」を使用して、ユーザーがどちらをチェック/チェック解除しているかを知ることができます。技術的には、ラジオ ボタンの動作をシミュレートするために、必要に応じて他のチェック項目をオフにすることができます。

実行時に dijit.CheckedMenuItem をチェック/チェック解除する方法を教えてもらえますか? どのプロパティと関数を呼び出す必要がありますか?

4

1 に答える 1

0

他のCheckedMenuItemウィジェットでcheckedをfalseに設定できるはずです

checkedMenuItemWidget.set('checked',false)

特定のcheckedMenuItemのチェックを外します。

于 2012-11-01T18:16:57.650 に答える