Я использую чекбоксы 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"}]
Любые советы приветствуются. И я очень открыт для любых предложений о том, как улучшить этот код в целом.