Невозможно сбросить порядковый номер фокуса - PullRequest
1 голос
/ 13 апреля 2020

Я пытаюсь сбросить после выбора некоторых из бара человека.

index. html: (строка № 62)

<span>
  <a href="javascript:focus.filterAll(); dc.redrawAll();"  class="reset">reset</a>
</span>

Это, похоже, не работает. Мне удалось сбросить все графики p ie, график, линейный график и т. Д. c, но не этот.

Эти два порядковых графика созданы в index.js следующим образом:

var focus = new dc.barChart('#focus');
var range = new dc.barChart('#range');

https://blockbuilder.org/ninjakx/483fd69328694c6b6125bb43b9f7f8a7

Обновление: Теперь это выглядит странно, потому что это показывает один столбец, и все столбцы стали невидимыми, но я хочу, чтобы они были видимый (серым цветом), но не кликабельный. enter image description here

1 Ответ

1 голос
/ 14 апреля 2020

Этот пример заменяет встроенную функцию фильтрации столбчатой ​​диаграммы собственной реализацией порядкового выбора, поскольку диаграмма имеет линейный масштаб.

В примере используется глобальная переменная focusFilter для хранения текущий выбор. Нам нужно очистить это, и нам также нужно обновить фильтр измерений, как это сделал бы оригинальный filterAll, вытянув этот код из обработчика щелчков:

    focus.applyFilter = function() { // non-standard method
        if(focusFilter.length)
            this.dimension().filterFunction(function(k) {
                return focusFilter.includes(k);
            });
        else this.dimension().filter(null);
    };
    focus.filterAll = function() {
        focusFilter = [];
        this.applyFilter();
    };

Это также позволит d c .filterAll () для работы, для ссылки «сбросить все».

Вилка вашего блока .

По какой-то причине я мог В этом блоке исходные ссылки

<a href="javascript:focus.filterAll(); dc.redrawAll()">reset</a>

вообще не работают, поэтому я заменил их эквивалентными обработчиками щелчков D3:

    d3.select('#reset-focus').on('click', () => {
      focus.filterAll();
      dc.redrawAll();
    })
    d3.select('#reset-all').on('click', () => {
      dc.filterAll();
      dc.redrawAll();
    })

Я также обновил фокус пример порядкового столбца . Обратите внимание, что автоматическое c скрытие / отображение ссылки сброса не работает, поскольку в диаграмме по-прежнему имеется неактуальный фильтр диапазона.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...