2016-11-16 25 views
2

Morris.select()を使用して、ドーナツのデフォルトセグメントを維持することができます。morris.jsのドーナツセグメントのクリックイベントをトリガー

これとは別に、同じ(デフォルト選択のセグメント)でクリックイベントをトリガーしたいと思います。 これを達成する方法はありますか?

私も$('path').eq(1).trigger('click')を試しましたが、うまくいきませんでした。

+0

:ここ

は実施例でありますか? – krlzlx

+0

私はdivに対応するデータを表示しています。私は少数のデータセットに対してチャートを生成しています。各データセットの選択時に、div内のデータを表現したい。 –

答えて

2

Morris Donutオブジェクトにon('click')関数を追加します。次に、rowパラメータを使用してDonutデータにアクセスできます。

あなたが言ったように、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がHIGH値を与えたので、デフォルトでハイライトされ、最初にjsonから高価値のデータを取得しました。とにかくおかげさま...これは私よりもかなり簡単です –

関連する問題