如何在使用Highcharts时在Highslide弹出窗口中显示多行标题?

时间:2013-02-21 13:47:50

标签: javascript jquery highcharts highslide

我正在使用Highcharts显示图表,当用户点击图表中的某个点时,我正在使用Highslide在弹出窗口中显示其他信息。但是,我想在弹出窗口中为标题/标题文本添加其他信息。

我已经让Highslide使用以下代码显示基本信息:

$(function () {
    var options = {
        chart: {
            renderTo: 'container',
            defaultSeriesType: 'line'
        }
        credits: {
            enabled: false
        }
        plotOptions: {
            series: {
                cursor: 'pointer',
                point: {
                    events: {
                        click: function() {
                            hs.htmlExpand(null, {
                                pageOrigin: {
                                    x: this.pageX,
                                    y: this.pageY
                                },
                                headingText: this.series.name,
                                maincontentText: Highcharts.dateFormat('%A, %b %e, %Y', this.x) +':<br/> '+
                                    this.y +' visits',
                                width: 200
                            });
                        }
                    }
                },
                marker: {
                    lineWidth: 1
                }
            }
        },
        series: []
    }
});

我已经阅读了Highslide的API,并看到你可以使用'heading'变量和'Expander.prototype.onAfterGetHeading'函数,我已在下面显示,但我不确定如何实现它与Highcharts。

hs.Expander.prototype.onAfterGetHeading = function () {
    this.heading.html = 'this.a.title';
}

HERE这是一个在Highslide弹出窗口中显示带有多行标题的弹出窗口的网站,作为示例。但是,请记住,我正在尝试在Highcharts中实现此功能,可能在标题中使用动态文本。

感谢。

1 个答案:

答案 0 :(得分:0)

这是一个可以与Highcharts一起使用的解决方案:http://jsfiddle.net/roadrash/gd3xz/

请注意,这是在标题中插入锚点标题文本的正确代码,作为附加标题文本:

hs.Expander.prototype.onAfterGetHeading = function (sender) {
    if (sender.heading) {
        sender.heading.innerHTML += this.a.title;
    }
};

我不熟悉Highcharts,但我认为你不能使用this.a.title,因为a指的是锚标记。您当然可以使用上面的代码插入除this.a.title之外的其他内容,就像我在演示中所做的那样。