西蒙的答案中的链接很好地提供了一个与浮动工具提示一起使用的钩子。但是,我发现我必须四处挖掘并削减代码才能实现悬停效果。这是结果(基本上来自http://people.iola.dk/olau/flot/examples/interacting.html的逐字记录)。
在浮点初始化中唯一需要更改的设置是选项对象。它需要将此作为选项之一:
var options = {
//... : {},
grid: { hoverable: true }
};
此函数在调用时构造并显示工具提示元素。参数 x 和 y 是浮动内部的偏移量,因此工具提示位置正确。内容是工具提示中显示的内容
function showTooltip(x, y, contents) {
$('<div id="tooltip">' + contents + '</div>').css({
position: 'absolute',
display: 'none',
top: y + 5,
left: x + 5,
border: '1px solid #fdd',
padding: '2px',
'background-color': '#fee'
}).appendTo("body").fadeIn(200);
}
这是绑定,它应该只在用作浮动占位符的元素可用时调用一次。它连接事件处理程序。previousPoint 用作显示工具提示的标志
var previousPoint = null;
$("#flotPlaceHolder").bind("plothover", function (event, pos, item) {
if (item) {
if (previousPoint != item.dataIndex) {
previousPoint = item.dataIndex;
$("#tooltip").remove();
var x = item.datapoint[0].toFixed(0),
y = item.datapoint[1].toFixed(0);
showTooltip(item.pageX, item.pageY, "(" + x + "," + y + ")");
}
}
else {
$("#tooltip").remove();
previousPoint = null;
}
});