0

コントローラで、シリーズチャートの「itemmouseup」イベントのリスナーを作成するのに問題があります。

コントローラ:

init: function () {
    this.control({
        'monthbalance > chart': {
            render: this.onChartRendered,
            itemmouseup : this.onChartClick
        },          
    });
}, 

'itemmouseup'の代わりに'mouseup'イベントを挿入すると、正常に機能します。しかし、私は「itemmouseup」が必要です。どこが間違っているのですか?

ありがとう。

ビュー抽出で更新:

        },{
        id: 'card-1',
        xtype: 'chart',
        store: 'MonthBalances',
        title: 'This Year vs Previous Years',
        theme: 'Category1',
        legend: {position: 'right'},
        shadow: true,
        axes: [{
            type: 'Numeric',
            position: 'left',
            fields: ['monthbalance','monthlastyear','monthpreviousyear'],
            label: {
                renderer: Ext.util.Format.numberRenderer('0,0')
            },
            grid: true,
            minimum: 0
        },{
            type: 'Category',
            position: 'bottom',
            fields: ['month']
        }],

        series: [{
            type: 'line',
            title: 'this year',
            itemId: 'lineone',
            highlight: {
                size: 7,
                radius: 7
            },
            axis: 'left',
            xField: 'month',
            yField: 'monthbalance',
        //  listeners: {
        //      itemmouseup: function() {
        //          console.log('itemmouseup-thisyear');
        //      }
        //  },
        },{
            type: 'line',
            title: 'one year ago',
            itemId: 'linetwo',
            highlight: {
                size: 7,
                radius: 7
            },
            axis: 'left',
            xField: 'month',
            yField: 'monthlastyear',
        },{
            type: 'line',
            id: 'linethree',
            name: 'linethree',
            itemId: 'linethree',
            alias: 'widget.linethree',
            title: 'two years ago',
            highlight: {
                size: 7,
                radius: 7
            },
            axis: 'left',
            xField: 'month',
            yField: 'monthpreviousyear',

        }]
    }];
4

1 に答える 1

1

チャートitemmouseupのイベントがないため。このイベントは、拡張または拡張するクラスでのみ使用できますExt.view.ViewExt.panel.Table

シリーズを保持しているチャートではなく、シリーズに直接アクセスする必要があると思います。チャートではなく、チャート内で使用するシリーズ自体にコントロールを設定します。これを行うには、シリーズチャートのidプロパティを設定して、コントロールをそのIDにバインドできるようにします。

// untested but it should work
init: function () {
    this.control({
        '#your-id': {
            itemmouseup : this.onChartClick
        },          
    });
}, 
于 2013-01-17T07:34:16.063 に答える