2016-11-16 113 views
2

我能够使用Morris.select()在甜甜圈中保留默认段。触发morris.js中的甜甜圈段上的点击事件

除此之外,我想触发同一个(默认选择段)的点击事件。 有没有办法达到这个目的?

我甚至试过$('path').eq(1).trigger('click'),但它没有工作。

+0

你为什么要触发点击? – krlzlx

+0

我在div中显示相应的数据。我为少数数据集生成图表。在选择每个数据集时,我想用div来表示数据。 –

回答

2

在Morris Donut对象中添加on('click')函数。然后,您可以使用row参数访问甜甜圈数据。

正如您所说的,您可以使用甜甜圈的select(index)方法选择一个细分。然后,如果要显示相应段的数据,请调用以Donut数据为参数的函数,例如:morrisDonut.data[index]

这里是一个工作示例:

var morrisDonut = Morris.Donut({ 
 
    element: 'donut', 
 
    data: [ 
 
    {label: "Download Sales", value: 12}, 
 
    {label: "In-Store Sales", value: 30}, 
 
    {label: "Mail-Order Sales", value: 20} 
 
    ], 
 
    resize: true 
 
}).on('click', function (i, row) { 
 
    // Do your actions 
 
    // Example: 
 
    displayData(i, row); 
 
}); 
 

 
// Index of element to select 
 
var i = 2; 
 
// Selects the element in the Donut 
 
morrisDonut.select(i); 
 
// Display the corresponding data 
 
displayData(i, morrisDonut.data[i]); 
 

 
function displayData(i, row) { 
 
    $('#data').html(row.label + ": " + row.value); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="//cdnjs.cloudflare.com/ajax/libs/raphael/2.1.0/raphael-min.js"></script> 
 
<script src="//cdnjs.cloudflare.com/ajax/libs/morris.js/0.5.1/morris.min.js"></script> 
 
<link href="//cdnjs.cloudflare.com/ajax/libs/morris.js/0.5.1/morris.css" rel="stylesheet" /> 
 

 
<div id="donut"></div> 
 
<div id="data"></div>

+0

谢谢..我发现了另一种方式....因为morris给出了高值默认情况下突出显示,我最初从json获取高价值数据。然后无论如何,它们显示出相应的值。无论如何谢谢...这比我的容易 –