我最近一直在使用Dimple.js,并且发现在某些情况下需要更改默认的工具提示行为。通过API执行此操作的方法描述为here。
但是,传递给函数的dimple.eventArgs对象应该包含有关触发事件的悬停元素的所有信息,但它缺少应该包含的一些数据。 jsFiddle示例here。在图上悬停一个点显示接收到的eventArgs对象包含数据点的正确yValue属性,但xValue属性始终为null。
相比之下,评论小提琴中的线条
s.getTooltipText = function (e) {
alert("Object xValue: " + e.xValue + " , Object yValue: " + e.yValue);
return [e.xValue, e.yValue];
};
表明默认的工具提示行为确实会收到正确的xValue属性。
如何在覆盖默认处理程序时访问这些值?
答案 0 :(得分:1)
默认的工具提示处理程序实际上获取了传递给重写方法的相同信息:https://github.com/PMSI-AlignAlytics/dimple/blob/master/src/objects/series/methods/getTooltipText.js
如果您正在寻找与标准工具提示相同的格式化文本,您可以通过访问用于获取标准工具提示的私有方法来获取它。您的被覆盖的getTooltipText
函数将在该系列的上下文中调用,因此this
将具有任何dimple.series
方法(默认方法是如何计算文本)。
var rows = [];
this.x._getTooltipText(rows, e); //x is your x dimple.axis object
另请注意,'rows'将在该函数内变异,并且不会返回任何内容。如果您正在查找用于计算其位置的原始数据点,则应在e.x
上提供该数据点。仅当您手动使用dimple.eventArgs
时才会创建series.addEventListener
对象。