是否可以删除highstock / highcharts中的窗格?

时间:2013-10-27 06:28:00

标签: highcharts highstock

假设我的highstock中有两个窗格,我可以动态删除其中一个窗格。因此,如果我单击一个窗格,我应该能够将该事件与窗格的id(yaXis)一起捕获,然后将轴与其系列一起删除。 我已经像下面一样动态添加了窗格(所以我的轴有Id等跟我一起)

chartX.addAxis({ // Secondary yAxis
                    id: studyName,
                    title: {
                        text: studyText
                    },
                    isX: false,
                    lineWidth: 2,
                    lineColor: '#08F',
                    //opposite: true,
                    top: startHeight,
                    height: 100,
                    offset: 0
                });
                var chartToUpdate=chartX.addSeries({
                        name: 'ADBE',
                        id: 'studyNew',
                        color: 'black',
                        data: studyData,
                        yAxis: studyName
                    });
                    $("#selectStudy").append("<option value='"+countNoOfStudiesAdded+"'>"+studyName+"</option>")
                }

是否可以删除上面提到的窗格。任何其他有助于实现动态删除窗格的方法都将受到赞赏。

感谢。

2 个答案:

答案 0 :(得分:0)

好的,我通过修补得到了解决方案...... 最好的方法是添加事件,这样每当我点击系列的图例时,它的窗格就会被删除。

var chartToUpdate=chartX.addSeries({
                        name: 'ADBE',
                        id: studyName,
                        color: 'black',
                        data: studyData,
                        yAxis: studyName,
                        events: {
                            legendItemClick: function(event) {
                                this.yAxis.remove();
                                countNoOfStudiesAdded--;
                            }
                        }
                    });

如果有人想要我的问题的确切答案,那么解决方案是有一个下拉选择/选项和一个按钮。单击按钮后,我们会从下拉列表中找到要删除的窗格,然后按如下方式删除它:

    $('#remove').click(function() {
        if($("#selectStudy").val()!=0) {
            var studyToDelete=chartX.get($("#selectStudy option:selected").text());
            while(studyToDelete!=null) {
                studyToDelete.remove();
                $("#selectStudy option:selected").remove()
                studyToDelete=chartX.get($("#selectStudy option:selected").text());
            }
        }
    });     

id的{​​{1}}为buttonremove下拉列表的idselection。因此,我们发现附加到窗格的所有系列都具有与selectStudy广告相同的ID,并将其删除。

答案 1 :(得分:0)

您可以使用Axis.remove()函数删除轴。

http://api.highcharts.com/highcharts#Axis.remove()