我搜索了可以在下拉列表中显示项目列表的解决方案,并隐藏除选定系列之外的所有其他系列。我找到了两种不同的解决方案
此小提琴中的代码显示下拉列表中的项目列表
boost::variant
http://jsfiddle.net/philfreo/Nkeep/85/
此小提琴中的代码显示所选系列并隐藏所有其他系列。
$(function() {
$('#container').highcharts({
legend: {
enabled: false
},
series: [{
name: 'Tokyo',
id: 'Tokyo',
data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6]
}, {
name: 'New York',
id: 'New York',
data: [-0.2, 0.8, 5.7, 11.3, 17.0, 22.0, 24.8, 24.1, 20.1, 14.1, 8.6, 2.5]
}, {
name: 'Berlin',
id: 'Berlin',
data: [-0.9, 0.6, 3.5, 8.4, 13.5, 17.0, 18.6, 17.9, 14.3, 9.0, 3.9, 1.0]
}, {
name: 'London',
id: 'London',
data: [3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8]
}]
}, function(chart) {
var $customLegend = $('#customLegend').append('<select id="customSelect"></select>').find('select'),
$option,
serie;
$customLegend.append('<option>Select serie</option>');
$.each(chart.series, function(i, serie) {
$customLegend.append('<option>' + serie.name + '</option>');
});
$customLegend.change(function() {
$option = $(this).val();
serie = chart.get($option);
if (serie.visible) {
serie.hide();
} else {
serie.show();
}
});
});
});
但是我试图在下拉列表中显示项目,也只显示所选的系列并隐藏所有其他项目。需要一个综合解决方案。
由于Highcharts是一个插件,我不知道如何编写代码。 请帮忙 !!!
答案 0 :(得分:1)
任何类型的HTML表单元素(如下拉菜单)都需要位于图表代码之外。好消息是,Highcharts可以轻松地与HTML事件交互(反之亦然)。
这是我建立的下拉列表:
<select id="chooseSeries">
<option value="all">show all series</option>
<option value="0">show apples only</option>
<option value="1">show pears only</option>
<option value="2">show oranges only</option>
</select>
这是我构建的一个功能,根据您的选择显示和隐藏系列。基本上,这与您在legendItemClick
事件中的代码相同,只与更改下拉列表有关。
我添加了一个显示所有系列的选项;如果您愿意,请随时保留此功能。
$('#chooseSeries').change(function () {
// if "show all series" option selected, show all series
if (this.value == "all") {
$.each(chart.series, function(index, series) {
series.show();
});
// otherwise, hide all series and then show only the one you selected
} else {
var selected = this.value;
$.each(chart.series, function(index, series) {
selected == index ? series.show() : series.hide();
});
}
});
这是一个改进的小提琴,显示了这些变化:http://jsfiddle.net/brightmatrix/Nkeep/128/
我希望这对你有所帮助!