我正在使用我目前正在使用工具提示格式化程序功能來控制工具提示的外觀,包括添加一些自定義CSS以在工具提示框的側面創建箭頭面對老鼠。我還使用定位器回調來確定工具提示的位置,但是當它從鼠標的一側改變到另一側時,我正在更新格式化程序回調以切換箭頭所在的工具提示的一側(請參閱代碼如下)。一切工作正常,除了導致工具提示切換鼠標兩側的第一個點。它顯然在工具提示「定位器」函數之前調用了一個工具提示的「格式化程序」函數(出於可能很明顯的原因)。但是,它會阻止我在更改邊時正確繪製工具提示。我真正需要在定位器回調中做的事情是更新格式化函數,然後重新繪製工具提示。那可能嗎?重繪工具提示裏面的工具提示定位器回調
positioner: function (boxWidth, boxHeight, point) {
// Set up the variables
var chart = this.chart;
var plotLeft = chart.plotLeft;
var plotTop = chart.plotTop;
var plotWidth = chart.plotWidth;
var plotHeight = chart.plotHeight;
var distance = 40;
var pointX = point.plotX;
var pointY = point.plotY;
// Determine if we need to flip the tooltip from following on the left to
// following on the right
if ((pointX - boxWidth - distance) < plotLeft) {
x = pointX + distance;
chart.tooltip.options.formatter = function() {
// UPATE THE TOOLTIP FORMATTER HERE
};
}
}
這裏是問題 http://jsfiddle.net/bteWs/
如果你去慢慢地,並注意其中開關發生的箭頭會指向錯誤的方向的第一個點的JS小提琴例子。之後它糾正(如我的文章所述)。只是在這種情況下尋找解決方案來獲得正確的行爲。