Сохранять орнаменты линейных диаграмм при переопределении события click в dc.js? - PullRequest
1 голос
/ 08 июля 2019

Все еще работаем над этой визуализацией: https://ayyrickay.github.io/circulating-magazines/

У меня хорошие обновления, но меня раздражает одна вещь: когда кто-то нажимает на график, он сохраняет свое состояние. Например, если я нажимаю на проблему, он запускает этот код, чтобы обновить как состояние приложения, так и состояние перекрестного фильтра

(chart) => {
    chart.selectAll('circle').on('click', (selected) => {
    state.circulationClicked = true
    const clearFilterButton = document.getElementById('clearIssueFilterButton')
    clearFilterButton.classList.remove('hide')
    clearFilterButton.addEventListener('click', lineChart.unClick)
    renderIssueData(selected)
    samplePeriodEnd.filter(d => {
        const currentIssueDate = moment.utc(selected.x)
        const periodEnding = moment.utc(d)
        const periodStart = moment.utc({'year': periodEnding.get('year'), 'month': periodEnding.get('month') === 5 ? 0 : 6, 'day':1})
        if (currentIssueDate >= periodStart && currentIssueDate <= periodEnding) {
            Object.assign(state, {currentIssueDate, periodStart, periodEnding})
            return currentIssueDate >= periodStart && currentIssueDate <= periodEnding
        }
    })

    state.totalSalesByState = salesByState.all().reduce((a, b) => ({value: {sampled_total_sales: a.value.sampled_total_sales + b.value.sampled_total_sales}}))
    us1Chart.colorDomain(generateScale(salesByState))
    us1Chart.customUpdate()
    })
}

Здесь много чего происходит, но я разочарован, потому что, похоже, потому что я переопределил щелчок по умолчанию, я выбил некоторые функции, которые я хотел - в частности, я хочу, чтобы круг, связанный с точкой данных чтобы остаться в том.

Использование renderDataPoints метода не правильно, потому что мне нужен только круг, чтобы остаться на клике. Я также пытался создать метод moveToFront , чтобы вывести круг на передний план, но это не сработало для меня. Кажется, моя проблема в том, что я не могу найти круг и изменить его свойства в самом методе click. Я получаю данные, но не могу связать HTML / SVG, связанный с точкой данных, чтобы изменить их соответствующим образом.

Раздражительный вопрос, как всегда, но хотелось бы немного помочь разобраться с этим (и, возможно, получить его где-нибудь задокументировано?)

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