Перекрестная фильтрация с несколькими категориями флажков в d3Jquery

Программирование на jquery
Anonymous
Перекрестная фильтрация с несколькими категориями флажков в d3

Сообщение Anonymous »

Я хотел бы отфильтровать данные на карте d3, используя две разные категории флажков: одну для «арендатора», а другую для «брокера». Я могу успешно фильтровать по любой категории по отдельности, но проблема заключается в том, чтобы заставить оба фильтра работать вместе. Например, если я повторно проверю флажок в одной категории, будут возвращены все данные для этой категории, независимо от того, что отмечено/снято в другой категории. Я хочу отфильтровать данные по нескольким категориям одновременно.
Вот мой код:

Код: Выделить всё

//"Tenant" checkboxes
top:13px">Regus



Spaces



//"Broker" checkboxes
CBRE




Colliers




//Filter by "Tenant"
d3.selectAll("#RegusCheckbox").on("change", function() {
var type = "Regus"
display = this.checked ? "inline" : "none";
d3.selectAll(".features")
.filter(function(d) { return d.properties.Tenant === type; })
.attr("display", display);
});

d3.selectAll("#SpacesCheckbox").on("change", function() {
var type = "Spaces"
display = this.checked ? "inline" : "none";
d3.selectAll(".features")
.filter(function(d) { return d.properties.Tenant === type; })
.attr("display", display);
});

//And, filter by "Broker"
d3.selectAll("#CBRECheckbox").on("change", function() {
var type = "CBRE"
display = this.checked ? "inline" : "none";
d3.selectAll(".features")
.filter(function(d) { return d.properties.Agency_Bro === type; })
.attr("display", display);
});
d3.selectAll("#ColliersCheckbox").on("change", function() {
var type = "Colliers International"
display = this.checked ? "inline" : "none";
d3.selectAll(".features")
.filter(function(d) { return d.properties.Agency_Bro === type; })
.attr("display", display);
});
Есть ли способ сохранить эту общую логику, позволяя d3 фильтровать обе эти категории одновременно?

Подробнее здесь: https://stackoverflow.com/questions/539 ... ries-in-d3

Вернуться в «Jquery»