我的highcharts工具提示中有4个结果,它们没有排序,看起来像这样:
somerhing: 10 $
something: 18 $
something: 2 $
something: 8 $
我希望将它们从最低$到最高$ 2从$ $排序到18 $这样:
somerhing: 2 $
something: 8 $
something: 10 $
something: 18 $
以下是工具提示结果的高图循环:
tooltip: {
formatter: function() {
var s = '<strong>something: '+ this.x +'</strong>';
$.each(this.points, function(i, point) {
s += '<br/>'+ point.series.name +': '+ point.y +currency;
});
return s;
},
任何想法如何排序?
感谢。
答案 0 :(得分:14)
添加上述答案。
我也希望获得工具提示的默认格式。所以我在formatter回调中调用了tooltip.defaultFormatter.call(this, tooltip)
。
请注意,它按降序排序。如果您想升序,只需删除items.reverse()
即可。
function isArray(obj) {
return Object.prototype.toString.call(obj) === '[object Array]';
}
function splat(obj) {
return isArray(obj) ? obj : [obj];
}
$(function () {
$('#container').highcharts({
tooltip: {
formatter: function (tooltip) {
var items = this.points || splat(this),
series = items[0].series,
s;
// sort the values
items.sort(function(a, b){
return ((a.y < b.y) ? -1 : ((a.y > b.y) ? 1 : 0));
});
items.reverse();
return tooltip.defaultFormatter.call(this, tooltip);
},
shared: true
},
});
});
基于适用上述defaultFormatter功能。
tooltip: {
formatter: function (tooltip) {
var items = this.points || splat(this),
series = items[0].series,
s;
// build the header
s = [series.tooltipHeaderFormatter(items[0])];
// sort the values
items.sort(function(a, b){
return ((a.y < b.y) ? -1 : ((a.y > b.y) ? 1 : 0));
});
items.reverse();
// build the values
$.each(items, function (i, item) {
series = item.series;
s.push((series.tooltipFormatter && series.tooltipFormatter(item)) ||
item.point.tooltipFormatter(series.tooltipOptions.pointFormat));
});
// footer
s.push(tooltip.options.footerFormat || '');
return s.join('');
},
shared: true
},
答案 1 :(得分:5)
试试这个
tooltip: {
formatter: function() {
var s = '<strong>something: '+ this.x +'</strong>';
var sortedPoints = this.points.sort(function(a, b){
return ((a.y < b.y) ? -1 : ((a.y > b.y) ? 1 : 0));
});
$.each(sortedPoints , function(i, point) {
s += '<br/>'+ point.series.name +': '+ point.y +currency;
});
return s;
},