0

jQuery Dynatree チェックボックスを使用して、Google マップの日付でマーカーをフィルタリングしています: http://crocdoc.ifas.ufl.edu/projects/chameleonmapdev/

特定の日付のチェックボックスは問題なく機能しますが、月のチェックボックスで適切なマーカーをすべて表示/非表示にする方法がわかりません。日付チェックボックスにアタッチできるonChangeイベントのようなものを望んでいました(親チェックボックスがチェックされている場合はチェック/チェック解除されるため)が、ドキュメントでそのようなものを見つけることができないようです(http :/ /wwwendt.de/tech/dynatree/doc/dynatree-doc.html#h5.1 ) そのため、onSelect 関数を使用していますが、親月が選択されている場合、これは自動的に日付をターゲットにしません。フォルダーがチェックされている/チェックされていない場合、すべての子のキーの配列を取得したいと思います。これまでのところ、すべての子を記述するオブジェクトを取得できますが、キーはそのオブジェクト内のオブジェクトにあるため、解析方法がわかりません。

      onSelect: function(select, node) {
        console.log('isFolder: '+node.data.isFolder);
        if (node.data.isFolder === true) {
            console.log(node.data.children);
                //Parse node.data.children to get array of child keys

        } else {

            if (select === false) {
                for (g in marker_container[node.data.key]) {
                    marker_container[node.data.key][g].setMap(null);
                }
            }
            if (select === true ) {
                for (g in marker_container[node.data.key]) {
                    marker_container[node.data.key][g].setMap(map);
                }   

            }

        }
      }

node.data.children戻り値:

 [Object { title="July 12, 2011", select=true, key="July1211"}, Object { title="July 14, 2011", select=true, key="July1411"}, Object { title="July 26, 2011", select=true, key="July2611"}, Object { title="July 27, 2011", select=true, key="July2711"}, Object { title="July 28, 2011", select=true, key="July2811"}]

どんなヒントでも大歓迎です。そして、このコードを一般的に改善する方法についての提案をお待ちしております。

4

1 に答える 1

0

ここでは、解析という用語は適切ではありません。ログに表示されるのは、オブジェクトを説明する文字列ですが、解析する必要はありません。コンマで区切られたオブジェクトを囲む大括弧[とは、 が子オブジェクトを含む配列であることを示します。各オブジェクトには「キー」という名前のプロパティがあり、次のように配列を反復処理することで取得できます。]node.data.children

if (node.data.isFolder === true) {
    var keys = [];
    for (var i = 0; i<node.data.children.length; i++){
        keys[i] = node.data.children[i].key;
    }
}
于 2011-09-16T19:49:50.863 に答える