2016-12-06 12 views
0

У меня возникли проблемы с преобразованием кода ниже для работы с Chart.js 2.0. Моего объекта диаграммы, созданный с помощью искомые ...ChartJS 2.0 разницы в коде справки

var chart = new Chart({...constructor code here...}); 

, и я понял, как создать свою собственную подсказку и пользовательские легенды, но я не могу показаться, чтобы выяснить следующие пункты.

Во-первых, у меня есть событие клика, связанное с самой диаграммой, поэтому, когда пользователь нажимает на нее, он вызывается пользовательской функцией, проходящей в сегменте (фрагменте круговой диаграммы), который пользователь нажал. В предыдущей версии версии Chart.js 1.0 я мог бы назвать следующий код, и он отлично работал. Это позволило бы мне увидеть метку и свойство наряду с другими свойствами сегмента.

// Pass the segment of the pie chart the user clicks into myCustomFunction() 
$('#chartDiv').click(function(evt) { 
    var activeSegment = chart.getSegmentsAtEvent(evt); 
    myCustomFunction(activeSegment); 
}).css('cursor','pointer'); 

Другой вещь, которую я не могу понять, я хочу, чтобы добавить MouseEnter и MouseLeave события моих пользовательских условных обозначений элементов. Когда пользователь нависает над элементом легенды, он выведет правильную подсказку для этого сегмента. Когда они перемещаются, всплывающие подсказки закрываются. Вот код, который я использовал на ChartJS 1.0.

// Tie the legend to the chart tooltips 
var helpers = Chart.helpers; 
var chartLegend = document.getElementById("chartLegend"); 
helpers.each(chartLegend.firstChild.childNodes, function(legendNode, index){ 
    helpers.addEvent(legendNode, 'mouseenter', function(){ 
     var activeSegment = chart.segments[index]; 
     activeSegment.save(); 
     activeSegment.fillColor = activeSegment.highlightColor;     
     chart.showTooltip([activeSegment], true); 
     activeSegment.restore(); 
    });    
    helpers.addEvent(legendNode, 'mouseleave', function(){ 
     chart.draw(); 
    }); 
}); 

Если кто-нибудь может помочь мне понять это, я был бы очень признателен. Спасибо!

ответ

0

Для события onclick вы можете использовать var activeSegment = chart.getElementAtEvent (evt);

 Смежные вопросы

  • Нет связанных вопросов^_^