我已經使用sencha ExtJS網站中的餅圖示例創建了餅圖,我想爲每個餅圖片添加一個點擊事件,以便處理上下文該片上的數據。我能夠向餡餅添加點擊偵聽器,但不知道如何獲取切片上的數據。ExtJS如何將點擊事件添加到餅圖片
以下是ExtJS代碼。
Ext.onReady(function(){
var store = Ext.create('Ext.data.JsonStore', {
fields: ['name', 'data1', 'data2', 'data3', 'data4', 'data5'],
data: [{
'name': 'January',
'data1': 10
}, {
'name': 'February',
'data1': 7
}, {
'name': 'March',
'data1': 5
}, {
'name': 'April',
'data1': 2
}, {
'name': 'May',
'data1': 27
}]
});
Ext.create('Ext.chart.Chart', {
renderTo: Ext.getBody(),
width: 800,
height: 600,
animate: true,
store: store,
theme: 'Base:gradients',
legend: { // Pie Chart Legend Position
position: 'right'
},
series: [{
type: 'pie',
field: 'data1',
showInLegend: true,
tips: {
trackMouse: true,
width: 140,
height: 28,
renderer: function(storeItem, item){
//calculate and display percentage on hover
var total = 0;
store.each(function(rec){
total += rec.get('data1');
});
this.setTitle(storeItem.get('name') + ': ' + Math.round(storeItem.get('data1')/total * 100) + '%');
}
},
highlight: {
segment: {
margin: 5
}
},
label: {
field: 'name',
display: 'rotate',
contrast: true,
font: '18px Arial'
},
listeners: {//This Doesnt Work :(
itemclick: function(o){
alert('clicked at : ' + o);
}
}
}],
listeners: { //This Event handler works but I am not sure how to figure how which slice i have clicked ..................................
click: {
element: store, //bind to the underlying el property on the panel
fn: function(o, a){
alert('clicked' + o + a + this);
}
}
}
});
});
請幫忙。
問候, 拉利特
你是絕對正確的!我誤解了這個問題。 – sra
非常感謝Abdel,它的工作,但我不明白爲什麼itemclick沒有工作和itemmousedown事件的作品。你有關於這個文檔的任何鏈接。 – Lalit
即使圖表有itemclick事件。我沒有在Series源代碼中看到它。必須閱讀更多的代碼來回答你的問題。你可以從http://dev.sencha.com/deploy/ext-4.0.0/docs/api/Ext.chart.series.Series.html –