dimple.js中的eventArgs看起来不完整

时间:2014-10-08 13:56:57

标签: javascript dimple.js

我最近一直在使用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属性。

如何在覆盖默认处理程序时访问这些值?

1 个答案:

答案 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对象。