Это делается путем делегирования событий. Событие будет привязываться к элементу-оболочке, но будет делегировано элементу селекторного класса. Вот как это работает.
$('.wrapper-class').on("click", '.selector-class', function() {
// Your code here
});
Элемент-оболочка-оболочка может быть любым ex. документа, тела или вашей обертки. Упаковщик должен уже существовать.
Если вы установите domain
генератора гистограммы, он должен быть массивом :
Доменный бин определяется как массив [min, max], где min - минимальное наблюдаемое значение, а max - максимальное наблюдаемое значение.
blockquote>Однако, у вас есть это:
var binMaker = d3.histogram() .domain([xScale.domain()])
Поскольку
xScale.domain()
сам по себе является массивом:[0,10]
В итоге вы получите:
var binMaker = d3.histogram() .domain([[0, 10])
Что, очевидно, не сработает. Итак, просто сделайте:
var binMaker = d3.histogram() .domain(xScale.domain()) //no square brackets--^
Вот демо:
m_data = [6, 9, 5, 6, 7, 5, 8, 7, 4, 7, 4, 3, 5, 8, 5, 4, 8, 7, 6, 9, 4, 6, 8]; var xScale = d3.scaleLinear() .domain([0, 10]) .nice(); var binMaker = d3.histogram() .domain(xScale.domain()) .thresholds(xScale.ticks(10)); var bins = binMaker(m_data); console.log(bins);
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/5.7.0/d3.min.js"></script>